ࡱ> JLIY R'bjbjWW *>== #1]8 ,XVVlll$NBC{CllVllZM rl l2$){؞^Data Dictionaries What is a Data Dictionary? Some Definitions A data dictionary is centralised repository of data names, descriptions, domains, etc. A data dictionary is an inventory that describes, defines and lists all of the data elements that are used in a system model Not Just Data Items From Select SSADM, you will have seen definitions for processes, entities, etc. Concept The basic concept behind a data dictionary is very simple It provides a way of organising definitions of the items in a model Storage Medium Data dictionaries are not confined to computers They can be produced either manually or by a CASE Tool CASE tools automatically store a glossary of terms, e.g. Select, TeamWork, System Architect Purpose It describes the meaning of items in a model including the relationship to other items Many different people use data dictionaries Some use them to construct databases from Data Models & Entity Relationship Models. Others use them in programming. When programming or creating a database, certain words are used for certain items You need to be consistent throughout the whole application A record of what each item is makes it relatively simple working out what each name refers to This is basically what a data dictionary is - a dictionary of all the items used in a system model so that they are not forgotten or omitted and ( more importantly? ) that the meaning of an item is not changed Data dictionaries are used by people who need to record information about data processing and the relationships between entities History Data dictionaries have been around for a relatively long time They were first introduced in the mid 1960's They promised much but were never used enough to fulfil their potential The data dictionary idea came about because of an individual called King published a paper entitled 'Systematics' in 1967 In it, he announced, A data dictionary should aim at being a list of items that must occur in the course of processing It was thought that the processing should be documented It was initially designed so that it would be a major design tool for programming but it only ever came into full use when forth generation systems were introduced Code Generators for databases & 3rd Generation Languages The Original Concept was that they were simple tools to record data definitions In today's computing world, they are far more important They are now used to represent large amounts of analysis and design information similar to the Oxford English Dictionary supposed to hold every recognised word in the English Language There are also rules and regulations about the use and the format of a data dictionary These rules were suggested by ISO (International Standards Organisation), entitled the IRDS (Information Resource Dictionary System) The role of a data dictionary has always been a central database for all data processing information Some people did not embrace data dictionaries because they were seen as more of a hindrance than a help because of the 'extra' work they entailed Now automated data dictionaries are available, they are accepted because the additional work is carried out automatically by the computer. Processing a Data Dictionary It is important that the information can be produced in the form of a report. Other additional facilities within a data dictionary system include: Views and mappings: this is where data is looked at in different ways by different project teams ; Payroll & Recruitment software development share certain items about employees/interviewees Keywords and aliases: this function can be very useful to certain individuals if the data dictionary is able to identify keywords in the description of a data item. This facility enables the user to eliminate any redundancy within the system Rather than create a new item, does 1 exist The following diagram is a general structure of a data dictionary record  Advantages & Disadvantages The modern systems analyst will insist that there is no better way to model systems than by using Data Flow Diagrams (DFD) and Data Dictionaries (DD) but there can be disadvantages to using this kind of technique Advantages. DFDs and DDs emphasise and focus on the flow of data and the structure of a systems model thus removing any ambiguity from the meaning of item labels If properly maintained all labels are present in the DD and what that label means is expressed precisely using standard terminology that can be read by all Even non-technical people can, with minimal instruction, understand what is being said in the DD and DFD. Disadvantages Some analysts believe that DD and DFD divert attention from the processing, in that only inputs and outputs are shown along with the data structure, omitting processing descriptions from pure Data Dictionary philosophy Recent CASE Tools include a lot more info Some users and analysts who may use other methods find it difficult to relearn their trade and start to use DDs and DFD (They are a contemporary tool). Manual Data Dictionaries The problems encountered in maintaining a manual Data Dictionary are not necessarily to do with the actual dictionary but in the techniques used In order to keep the DD properly maintained, a strict standard of documentation must be maintained This must be followed religiously whatever is added : data, process, entity, etc. This can clearly lead to difficulties in maintaining concentration, which in turn causes mistakes in proper checking of data expressions, duplication and cross referencing. Automated Data Dictionaries There are clear advantages to be had from having an automated system for DDs Probably the most useful tool is the ability to check labels, relationships and definitions Consistency Checks The DD can be updated and corrected with the software then checking and validating the DD, DFD and labels. The data expression is also checked to ensure that it makes sense and conforms to the framework rules type < integer, char > & domain < A-Z, 0-9 > The analyst is free to concentrate on the system being modelled and also has access to the DD almost as an aside Rules for Defining Data In order to effectively maintain a Data Dictionary, there must be a standard way to express data Each entry consists of a formal definition and a verbal description This avoids ambiguity and enables all people to understand exactly what is needed and to maintain and make changes throughout a systems lifetime Some Symbols = Equivalent to + And [] Either/Or () Optional & Standards Use words that say what they mean i.e. 'MEMBER-NUMBER' not 'Idno' Use unique words Only use aliases when entries are similar i.e. VENDOR-NO, VENDOR-NUM but use them only when necessary Redefine complex words that are not self-explanatory For example: MEMBER-ADDRESS = (DOOR_NUMBER) + STREET + POST TOWN + (DISTRICT) + (COUNTY) + (POST-CODE). An Example Data Dictionary MOMENT_IN_TIME:= TIME + DATE TIME := HOUR + MINUTE + SECOND DATE := DAY + MONTH + YEAR HOUR := INTEGER (RANGE = 0 - 23) MINUTE := INTEGER (RANGE = 0 - 59) SECOND := INTEGER (RANGE = 0 - 59) DAY := INTEGER (RANGE = 1 - 31) MONTH := INTEGER (RANGE = 1 - 12) YEAR := INTEGER (RANGE = 0 - 1999) The example above gives information about compound variables/fields (E.g. 'Hour' and 'Minute) as well as defining legal values for each element (E.g. 'Month' is represented as an integer in the range 1-12) In automated systems development, the data dictionary is crucial Without it, any model of a user's requirements cannot possibly be complete; what you will have is vague idea of the requirements The data dictionary can also be used to ensure that you have understood the details of the application In most real-world systems that are created, the data elements are sufficiently complex to necessitate describing them in terms of other things Complex (or compound) data elements are defined in terms of simpler data elements The lowest level data elements can then be defined in terms of the legal units and values they can take Conclusion Since computer applications began growing in size, data dictionaries have become vital in the design, implementation and maintenance of these new systems Data Dictionaries provide a permanent record as to the variables used in a computer system thus: At the design stage they help to identify repetition of data and thus help to reduce redundancy & confusion During implementation, the data dictionary helps combat incompatibility by providing a precise list of agreed formats and valid ranges for all variables in the system During the maintenance of a system, the data dictionary can be used by the original programmers to refresh their knowledge of the system, or even by new staff learning about the system It is doubtful that we would even be able to create todays complex applications, if we did not have data dictionaries http://www.soc.staffs.ac.uk/~cmtrmk/ssat/01/06home.htm http://www.canberra.edu.au/~sam/whp/datadict.html (Alex Fleming, 2001 Page  PAGE 7 U V NO&'''@'A'G'H'I'J'R'hmH jUhh jh jUH*566->&v~ ;r-YZ  Q ~ @ ->&v~ ;r-YZ  Q ~ @ H " Z kUľֻ֠}zwtqnk{ev BtRE Dtu D     *@ H " Z kUt%NPk@L~ & Ft%NPk@L~BP}g<J[bp}}zwtnkhe C (U& [V h g^  &p   O  'BP}g<J[bp}}Cx>Yz % 5!!"""g#r# $$o$$%;&&&&&&&' '"'#'¿|zw   1     [:1'Jm : q.Cx>Yz % 5!!"""g#r# $ $$o$$%;&&&&&&&' '!'"'#'$'%'&'K'L'M'N'O'P'Q'R' & F#'&'K'P'Q'R' (&P . A!"#$%/Dd@ p  c LA(DataDict-Struct.gifbkmbSbQOGDn?mbSbQOPNG  IHDR@șPLTE  $$$(((,,,000444888<<<@@@DDDHHHLLLPPPTTTXXX\\\```dddhhhlllppptttxxx||| 4DTdt 00@@PP``pp 4DTdt 00@@PP``pp 4DTdt 00@@PP``pp 44DDTTddtt 0@P`p 44DDTTddtt 0@P`p 44DDTTddtt 0@P`p <(\<|L`t؈ܜ(PxРȡ abKGDHIDATx]y{>b\Jzyu?Nn!IU0}tD  ft(%$S 8e ,i7lv8nk_܈qȻa6xG]ׅr!췼[-؈ƭs)=GxFk|CCcF9ޒ/T:<+>=Zl ?G@/>^ҘsbW$ .'b/!~ĽJ/n6(zCH8/&Aʮ3ޔ WxQE>Ev~5]NeAg4M8 ƃӴ W2Pr\;rMih^qݘ]Sx XOK)`I<,%$n##6,&DF!&4"ip|! [w񰟋n+7ezcTLggGzW2F*ƎӊNB[7K[wޫ+; ~Ѥ7K/ [y>R j͉=@@LrL˹P2Nt82R$jO׾" ݿ9bG.u򡃆且BQ3 4-M`/ YQWr\ NE ?^ⵣN<%v0Bb?]XΖL@`,` #9."`xV(ΎfFfxB=09.pJ:ʽ\$k?m^\8;~| 1$ƥTi q($wChA bs#D$^.SrH+HC҄iܙI Q` LnH6bx@ fyrKppt EEx(+0Bfލ aI4o ÿQ.W@xx W"XKBIb<8&^I0咾4rʦ`01ۑ Q3ɹ}ܰHBOZ8!4O ZDDb1.r5j50ޮHROnLbh_J qW sSew $Sx XOK)`IY@5?4 wP~/Фi;ei.`sʂ֙i^&0ֳ[2px, |d&iaZ|||BĵS0 xs\VH@=~.`D>I>u@C>a ,`T>q[;.|uw1 >{|I)5n36xKp71<ϼ^hT~W²'Itm Y%=N?lPTkY%nkVj1LlXЕhN*ˋ~. 79p8ϥ ̵0ٚ&Y>DwMYj\.K p܍A8w:1' ,I( G#=^  U^K$J.PT}c|G OҕZQ5O* mgHxʒ} !n-%LfXs#K$պӹ[: h-?x4s_ٿ^5瀻~|Σ Y,e_nSV@nmfC+E4MUl!@wOQUj)FDẓE^? xk'.eq"vk]SeQDo@:dr K-EфXQ#|, phyфɲb#1V$ǃmnPPmtj4" *xF62Zfcڙ`~w[8Q(ԅh-zq i4%\1j5Ӊ 9uyڦ)S7\ ZH$+R5om4\C~,Bf˃ߒ:tiV7^cu][256 7</ײAYE[3q2ÁA Nv;P"DX&V8kI6A x Z 9uS+|yĵfX c%)L&ɐ57s4sh'}P ,yFQ)08rn/\(Z )L+q$Lqs0о@)f߅b},uS_VcL5452 %[GҠaikL _\lJeCPtmk{3GEh`. bߋ9|9<ykyȤ ۭƎhl![ %Qd+ՖS2[*cZ;4s;00̞1byk94ՖDi-ݹõjVA}cFLmmY06'&`Wyf6 ^n,o-kb-{惊rZ'dUz?#YRc4N# xXŋ%OEn  K'-p@Ep:>[3ϡSd"~_#|S kK8>33Jkqv%œfiށL.d^C/ ڔdoGJMU[|(\H @#7U6= /fOҀ1p-ns`~8rhc=a'f k2d&`4ot0>?7pZ(|%67, +"[{tC?NK-VN㷻ٲaFֶަʾ~[ y U7s<,C$2JRJI"vq)DGgyy/V"ykf2 /5"Ն V-A~/;Y@FM[H N/bN&)ܒOd4TyS#Tx4bl+AV޲nAk1BwDp n+3g~HpWhF g=l{=P0WNh }[v<ҲnӺwrS4EuA/o@\9f [;2q;ۦT0 ?3l/ըf'Q4$JrbHnp6s'/o,e]5p17t\iػ9' *rId+(Tg]gq;hbnxxcAW~frt`8l\9Ki#o8!َ+"m+gLC(^*^٭˰ܕ3W/.[I#F!_ܕܧLw :\LsgJGT~ro,(wւjj=5.tNg08xcA+gceMQ~67r ;MH>|ov(c➽q37P~Z/@޽` #&x9D;zYKiA A?dWZՍV@896ɋ:E #PE{$}j]1QLe(JǓ31V6~9tGAQ(PQG Ƹ{QHZWoH~Gؐ.v|c Hh_-\KIENDB` [8@8 Normalnxx^n6mH F@!"F Heading 1$$@&a$ >*CJ KHB@12B Heading 2@&^6CJJ@J Heading 3$$7@&^7a$5CJ<A@< Default Paragraph Font4C@4 Body Text Indent&& TOC 9 @ ^@ BB H3$dd@&^56CJhtH uBB H4$dd@&^56CJhtH u|2| Preformatted8 # ~= z9!v%^6CJOJQJhtH u,@B, Header  9r 8 @R8 FooterP p#CJ>> H2$dd@&^56htH u(U@q( Hyperlink>*B*R#>,.03R'@  $R'}#'R' ')3!l,2$|[=y;6@0(  B S  ?R# #P#S#ggqq"# #;#@#J#K#L#P#S# Alex Fleming:C:\WINDOWS\TEMP\AutoRecovery save of Data-Dictionaries.asd Alex Fleming<C:\WebPages\lectures\Data-Dictionaries\Data-Dictionaries.doc Alex Fleming<C:\WebPages\lectures\Data-Dictionaries\Data-Dictionaries.doc Alex Fleming<C:\WebPages\lectures\Data-Dictionaries\Data-Dictionaries.doc Alex Fleming2C:\WebPages\lectures\Checked\Data-Dictionaries.doc Alex Fleming2C:\WebPages\lectures\Checked\Data-Dictionaries.doc Alex Fleming3C:\WebPages\afleming\lectures\data-dictionaries.doc Alex Fleming3C:\WebPages\afleming\lectures\data-dictionaries.doc Alex Fleming3C:\WebPages\afleming\lectures\data-dictionaries.doc Alex Fleming3C:\WebPages\afleming\lectures\data-dictionaries.doc62?y(.x@q hh^h`OJQJo(*0>0^0`>o(.z^`zo()^`.v Lv ^v `L.FF^F`.^`.L^`L.^`.^`.VLV^V`L.V?.xV@h ^`OJQJo( @##DQV##R#@@G:Times New Roman5Symbol3& :Arial?5 :Courier New"hL\wafZJf=="0d#!;"<C:\Program Files\Microsoft Office\Templates\LectureNotes.dotData Dictionaries Alex Fleming Alex Fleming RhubarB26 Oh+'0 $ @ L X dpxData Dictionariesdata Alex FlemingrielexLectureNotes.dotd Alex Flemingdot3exMicrosoft Word 8.0@@ol3@^@Rq؞ ՜.+,D՜.+,< hp|   i=#j Data Dictionaries Title(RZ _PID_GUID _PID_HLINKSAN{41A4F280-C0AA-11D5-ABB6-00C0DFEA7724}A`(8NDataDict-Struct.gif !"#$%&'()*+,-.012345678:;<=>?@BCDEFGHKRoot Entry FR΍k3s[{؞MData  /1Table/HWordDocument*>SummaryInformation(9DocumentSummaryInformation8ACompObjjObjectPools[{؞s[{؞  FMicrosoft Word Document MSWordDocWord.Document.89q