L545 Systems Analysis & Design Week 10: November 4, 2008
S556-Fall Data Dictionary A data dictionary subsystem keeps track of: the definitions of all the data items in the database Relationships that exist between various data structures Screen and report format definitions that may be used by various application programs
S556-Fall Data Dictionaries: Purpose To provide unambiguous definitions of all system data Communicate/validate definitions to all participants in the analysis process: Analyst Users System designers
S556-Fall Level of Data Dictionary Data Elements Data Structure Data flows and Data Stores
S556-Fall Level of Data Dictionary Data Elements Data elements are pieces of data, which need not be broken further. Data elements can describe files, data flows, or processes. Often a data element is self-defining, e.g., Student name, enrolment no.
S556-Fall Level of Data Dictionary Data Structure Data structure is defined as collection of data elements For example, let us consider the following "Student Information Record"
S556-Fall Level of Data Dictionary Data Structure E.g., "Student Information Record“ Student Information Enrolment Number Student name First name Last name Middle name STUDENT INFORMATION" is a data structure, made up of data elements: student name and enrolment number
S556-Fall Level of Data Dictionary Data flow and data stores Data flows are paths along which data travels Data stores are places where data is stored until needed Data flows are Data structures in motion Data stores are Data structures at rest
S556-Fall Sample Entry: Attribute A library reserves processing system ITEM Item_status Item_title Item_id Item_author
S556-Fall Sample Entry: Attribute A library reserves processing system ITEM Item_title Item_id Item_author Item_status
S556-Fall Sample Entry: Attribute A library reserves processing system Item Status Alias: Book status, Article status Meaning: The current status of the reserve item being processed Data type: 1 character Possible values: L = lost T = traced R =recalled from current borrower W =in library workroom S = on reserve shelf (processing complete)
S556-Fall Sample Entry: Attribute Name is entry name (e.g., item status) Alias = a synonym for a previously-defined data item Meaning = the semantic aspect of the attribute (i.e., definition) Data type: at least length and encoding means Specify the possible values
S556-Fall Examples of Data Formats in PC Systems (Kendall & Kendall, p. 254 Data TypeMeaning Char, textAny alphanumeric character DatetimeAlphanumeric data, several formats Decimal, numericNumeric data that are accurate to the least significant digit CurrencyMonetary numbers accurate to four decimal places AutonumberA number that is always incremented by one when a record is added to a database table
S556-Fall Sample entry: Complex attribute Catalog ordering system Customer address Alias: Client address Meaning: the full mailing address of the person ordering the materials; the address to which the materials are to be delivered Composition: Street address + (Apt. number) + City + State + Zip code Note: No P.O. numbers allowed; U.S. addresses only optional
S556-Fall Sample entry: Complex attribute Define the composition of the entry Partition/decompose the data into its components Components = the data elements which make up the complex attribute
S556-Fall Notation for Composition +and; includes all the components listed [ ]or; select one of the alternatives given separate components with | { }repetition of the component enclosed, 0-n ( )enclosed component is optional
S556-Fall Implementing a Data Dictionary Accompanies E-R diagram Provide additional detail about entities and attributes Also provide: Meanings of entities/relationships Notes on entities/relationship Ordering of entities By entity/relationship Alphabetical, within entity/relationship
S556-Fall Implementing a Data Dictionary Minimize redundancy to ease maintenance Do not represent anything that is represented elsewhere Use simple conventions for writing definitions
S556-Fall What Does DD Look Like? First, compile a list of fields that appear on existing forms and reports (see Davis p ) For typical data dictionary entries, see Davis p. 84
S556-Fall Example STUDENT PID Name Phone
S556-Fall Example: Data dictionary STUDENT: An individual person who takes a seminar and work PID Meaning: An identification number assigned to uniquely identify each student Data type: numeric/symbolic Possible values: Name Meaning: The name of the student Data type: alphanumeric, up to 30 characters including punctuation Phone Composition: area code + number Phone area code Meaning: area code of the student phone number Data type: alphanumeric, 3 characters Phone number Meaning: local number of the student phone number Data type: alphanumeric, 7 characters
S556-Fall Mapping Specialization & Generalization Relationships ACADEMIC PERSON STUDENTFACULTY d PID Major Appointment
S556-Fall Mapping Specialization & Generalization Relationships ACADEMIC_PERSON PIDNameAddress STUDENT PID Major FACULTY PID Appointment
S556-Fall Example: Data dictionary ACADEMIC_PERSON: An individual person who belongs to a university PID Meaning: An identification number assigned to uniquely identify each academic person Data type: numeric/symbolic Possible values: STUDENT: An individual academic person who is taking courses PID Inherited from ACADEMIC_PERSON.PID Major Meaning: The major that the student is pursuing Data type: alphanumeric, up to 30 characters including punctuation
S556-Fall Example: Data dictionary FACULTY: An individual academic person who is teaching courses PID Inherited from ACADEMIC_PERSON.PID Appointment Meaning: The school of college that the faculty member has an appointment Data type: 4 characters Possible values: ANTH = Anthropology BIOL = Biology HIST = History JOUR = Journalism PHYS = Physics …… SLIS = School of Library & Information Science
S556-Fall Example ATTEND Passed?
S556-Fall Example: Data dictionary ATTEND: the seminar attended by students Passed Meaning: whether the student attended the session Data type: 1 character Possible values: Y = Yes N = No