MODELLING THE DATA STRUCTURE Entity Modelling & Entity Relationship Diagrams Hazırlayan Yard.Doç.Dr. Zehra KAMIŞLI ÖZTÜRK SSADM (Structured System Analysis & Design Methodology - SSADM) Data Flow Diagrams (DFD) • DFDs show the processes, or functions, involved in a system. • They don’t tell us much about the structure of the data. entity model (or Logical Data Model) SSADM Entity Modelling • Entity Models – Real data – How the data connected? SSADM Entities • things we might want to keep information about – People like CUSTOMER – Objects like PRODUCT Swillbuckets Club • MEMBERS • RECIPES • EVENTS • ARTISTES • SUPPLIER • DRINK Medical Centre • PATIENT • DOCTOR • NURSE • APPOINTMENT • WORK DATA • PRESCRIPTION SSADM Is it an «entitty»? 1. An entity must be important to the organization. 2. An entity must have at least one attribute 3. An entity must occur more than once 4. Each entity occurrence must be uniquely identifiable MEMBER Membership number RECIPE Recipe number SSADM Representation form for entitites • rectangles with rounded corners in Entity Models • The name of the entity is always singular!! • RECEIPT • DRINK • PATIENT • • • 1980’lerin başında kullanılmaya başlanmıştır. SSADM SSADM, genellikle devlet bilgisayar projeleri için bir gereklilik olarak belirtilen İngiltere'de yaygın olarak kullanılan bir bilgisayar uygulama geliştirme yöntemidir. Giderek Avrupa'da kamu sektörü tarafından kabul edilmiştir. SSADM kamu malıdır ve İngiliz Standardı BS7738 ile belirtilir. ATTRIBUTE Attributes are bits of data associated with the entity Entity: MEMBER Attributes: – – – – – – – Member Name Membership Number Member Address Date of Birth Type Seconder Renewal Date A full membership record SSADM Keys A key is a way of identifying something My key: Zehra Kamışlı Öztürk (It’s how other people identify me) Brilliant ?? Zehra Öztürk (Yard.Doç.Dr. Anadolu Üniversitesi) Zehra Öztürk (X Bank) Zehra Öztürk (Dr. Y Hospital) t.r. identity number Keys • Zehra KAMIŞLI ÖZTÜRK • Zehra ÖZTÜRK - ANADOLU ÜNİVERSİTESİ ?? Keys • an entity is made up of a number of attributes. To identify that entity, we need a key. • Unique … primary key – it’s made up of just one attribute. Relationships • Entitites have relationships with other entities Swillbuckets Artistes entertain Members Students attend Classes Members attend Events Students have Tutors Artistes perform at Events Tutors give Classes Relationships • The entities are joined together by a verb which describes the relationship between them. • In an entity model, related entities are joined by a line Relation Types • one-to-one (1:1) • Relation Types • one-to-many (1:M) Relation Types • many-to-many (M:N) Relation Types • one-to-many (1:M) PATIENT DOCTOR EVENT ARTISTE M:M • Sadly, many-to-many relationships are not good for databases. They cannot be implemented effectively. • So many-to-many relationships have to be resolved. M:M • many-to-many (M:M) STUDENT COURSE CUSTOME PRODUCT Resolving many-to-many relationships 1. Find a link entity • we have to split many-tomany relationships into two one-to-many relationships. • This requires us to find a link entity which is a single occurrence of the many-tomany relationship. Resolving many-to-many relationships 2 Consider the attributes • When we create a new link entity in this way, we need to consider which attributes will make up the new entity. • There will be one or two from the original two entities, but there may be some completely new ones. Resolving many-to-many relationships 2 Consider the attributes • When we create a new link entity in this way, we need to consider which attributes will make up the new entity. • There will be one or two from the original two entities, but there may be some completely new ones. COURT DEFENDANT Court no Defendant no Court name Defendant name Court address Defendant address Postcode Postcode Court type date of birth Court clerk Current status TRIAL Court no* DEfendant no* Trial no Trial date Judge Charge Defence lawyer Prosecutor Simple steps in entity modelling 1. List the possible entities. 2. Check that the entities listed are really entities. 3. Draw a basic entity model, with boxes around the entities. 4. Identify which entities are related. Draw a line between them. 5. Give the relationship a name in each direction. Simple steps in entity modelling 6 Identify the relationship type. (1:1, 1:M or M:N) 7 Resolve any one-to-one relationships. 8 Resolve any many-to-many relationships. Add in link entities. 9 Add the attributes, including primary keys and foreign keys. Resolution and Naming the relationships Entity Modeling • The systems analyst will need to communicate regularly with the user • during this process in order to check that all necessary entities have been identified and that the relationships are accurate. CASE: Entity modelling at Swillbuckets 1. List the possible entities. ARTISTE EVENT MEMEBER DISH BREWERY DRINK ARTISTE RECIPE 1. An entity must be important to the EVENT BREWERY MEMEBER organization. 2. 3. DISH An entity must have at least one attribute An entity must occur more than once DRINK RECIPE 4. Each entity occurrence must be uniquely identifiable SUPPLIER MEDIA CASE: Entity modelling at Swillbuckets 3. Draw the basic entity model there may be more entities to come when we show the user our entity model. CASE: Entity modelling at Swillbuckets 4 Identify the relationships. ARTISTEs attend EVENTs MEMBERs attend EVENTs EVENTs provide DISHes DISHes require RECIPEs SUPPLIERs supply DRINKs MEDIA cover EVENTs CASE: Entity modelling at Swillbuckets 4 Identify the relationships. CASE: Entity modelling at Swillbuckets 5 Give the relationships a name, in each direction!! CASE: Entity modelling at Swillbuckets 6 Identify the type of relationship. each EVENT will only ever offer one dish (in order to keep Freddo Smitho just the right side of sane) and each dish will be offered at many EVENTs. each RECIPE could require many FOOD ORDERs and each FOOD ORDER could be required for many RECIPES. CASE: Entity modelling at Swillbuckets 7 Resolve any one-to-one relationships. CASE: Entity modelling at Swillbuckets 8 Resolve any many-to-many relationships. find a link entity CASE: Entity modelling at Swillbuckets 8 Resolve any many-tomany relationships. CASE: Entity modelling at Swillbuckets 9 Add the attributes and keys. • Primary keys are underlined. • Attribute names have been condensed into one word with no spaces – – spaces can cause problems in some systems. Capital letters are used to denote a new word in the name. • An asterisk denotes a foreign key – – an attribute which acts as a link to another entity by appearing in both. It’s a primary key in one entity but not in the other. • Address attributes are shown as just one attribute, but in reality they are – usually made up of a number of attributes e.g. Street, Town, County, Postcode. CASE: Entity modelling at Swillbuckets Physical data store/entity cross-reference 1 List all the data stores, by checking the current physical DFD • • • • • M1 Membership shoebox M2 Artiste shoebox M3 Supplier shoebox M4 Events folder M5 Recipe book Physical data store/entity cross-reference 2 Cross reference each data store with corresponding entities from the entity model. A data store can have more than one entity Physical data store/entity cross-reference 3 Check that each data store has at least one entity. 4 Check that each entity is stored in a data store. • We note that the entities EVENT TICKET and MEDIA do not have data stores. The fact that EVENT TICKET does not have a data store is expected.