Presentation is loading. Please wait.

Presentation is loading. Please wait.

Review Applications of Database Systems Applications of Database Systems Theory Practice.

Similar presentations


Presentation on theme: "Review Applications of Database Systems Applications of Database Systems Theory Practice."— Presentation transcript:

1 Review Applications of Database Systems Applications of Database Systems Theory Practice

2 Theory Part ER-diagram Referential integrity Relation normalization

3 ER-diagram Entity types Strong entity type Weak entity type Attributes atomic attributes composite attributes single-valued attributes multi-valued attributes Relationships Cardinality constraints Participation constraints Identifying relationship, recursive relationship

4 Mapping from ER-diagrams onto relational schemas 1.Create a relation for each strong entity type 2.Create a relation for each weak entity type 3. For each binary 1:1 relationship choose an entity and include the other’s PK in it as an FK 4. For each binary 1:n relationship, choose the n-side entity and include an FK with respect to the other entity. 5. For each binary M:N relationship, create a relation for the relationship 6. For each multi-valued attribute create a new relation 7. For each n-ary relationship, create a relation for the relationship

5 Referential Integrity (i)Consider two relation schemas R 1 and R 2 ; ii)The attributes in FK (foreign key) in R 1 have the same domain(s) as the primary key attributes PK (primary key) in R 2 ; the attributes FK are said to reference or refer to the relation R 2. iii)A value of FK in a tuple (record) t 1 of the current state r(R 1 ) either occurs as a value of PK for some tuple t 2 in the current state r(R 2 ) or is null. In the former case, we have t 1 [FK] = t 2 [PK], and we say that the tuple t 1 references or refers to the tuple t 2. Example: Employee(SSN, …, Dno)Dept(Dno, … ) FK

6 Relationships Window ConsultantID is primary key in Consultant table Relationship line ConsultantID is foreign key in Clients table

7 Delete Record button Click + to display related records You cannot delete a Consultant without first deleting related Clients

8 fname, minit, lname, ssn, bdate, address, sex, salary, superssn, dno Dname, dnumber, mgrssn, mgrstartdate Dnumber, dlocation Pname, pnumber, plocation, dnum Essn, pno, hours Essn, dependentname, sex, bdate, relationship EMPLOYEE DEPARTMENT DEPT _LOCATIONS WORKS_ON PROJECT DEPENDENT

9 Updating and constraints delete Delete the WORK_ON tuple with Essn = ‘999887777’ and pno = 10. When deleting, the referential constraint will be checked. - The following deletion is not acceptable: Delete the EMPLOYEE tuple with ssn = ‘999887777’ - reject, cascade, modify

10 Cascade deletion – a strategy to enforce referential integrity  ssn  Employee Essn Pno    delete Works-on delete

11 cascade – a strategy to enforce referential integrity Employee delete ssn supervisor    null  Employee delete ssn supervisor    null  delete not reasonable

12 Modify (cascade updating) – a strategy to enforce referential integrity  ssn  Employee Essn Pno    delete Essn Pno null   This violates the entity constraint. Works-on

13 Modify (cascade updating) – a strategy to enforce referential integrity  ssn  Employee delete This does not violate the entity constraint. Department  Dno   chairman Department null Dno   chairman

14 Normalization We discuss four normal forms: first, second, third, and Boyce-Codd normal forms 1NF, 2NF, 3NF, and BCNF Normalization is a process that “improves” a database design by generating relations that are of higher normal forms. The objective of normalization: “to create relations where every dependency is on the key, the whole key, and nothing but the key”.

15 Functional Dependencies We say an attribute, B, has a functional dependency on another attribute, A, if for any two records, which have the same value for A, then the values for B in these two records must be the same. We illustrate this as: A  B Example: Suppose we keep track of employee email addresses, and we only track one email address for each employee. Suppose each employee is identified by their unique employee number. We say there is a functional dependency of email address on employee number: employee number  email address

16 EmpNumEmpEmailEmpFnameEmpLname 123jdoe@abc.comJohnDoe 456psmith@abc.comPeterSmith 555alee1@abc.comAlanLee 633pdoe@abc.comPeterDoe 787alee2@abc.comAlanLee If EmpNum is the PK then the FDs: EmpNum  EmpEmail EmpNum  EmpFname EmpNum  EmpLname must exist.

17 Transitive dependency Consider attributes A, B, and C, and where A  B and B  C. Functional dependencies are transitive, which means that we also have the functional dependency A  C We say that C is transitively dependent on A through B.

18 EmpNum EmpEmail DeptNum DeptNname DeptName is transitively dependent on EmpNum via DeptNum EmpNum  DeptName EmpNum  DeptNum DeptNum  DeptName

19 A partial dependency exists when an attribute B is functionally dependent on an attribute A, and A is a component of a multipart candidate key. InvNumLineNumQtyInvDate Candidate keys: {InvNum, LineNum} InvDate is partially dependent on {InvNum, LineNum} as InvNum is a determinant of InvDate and InvNum is part of a candidate key

20 First Normal Form We say a relation is in 1NF if all values stored in the relation are single-valued and atomic. 1NF places restrictions on the structure of relations. Values must be simple.

21 Boyce-Codd Normal Form BCNF is defined very simply: a relation is in BCNF if it is in 1NF and if every determinant is a candidate key. LineNumProdNumQtyInvNum InvNum, LineNumProdNum InvNum, ProdNumLineNum Qty {InvNum, LineNum} and {InvNum, ProdNum} are the two candidate keys.

22 Second Normal Form A relation is in 2NF if it is in 1NF, and every non-key attribute is fully dependent on each candidate key. 2NF (and 3NF) both involve the concepts of key and non-key attributes. A key attribute is any attribute that is part of a key; any attribute that is not a key attribute, is a non-key attribute. Relations that are not in BCNF have data redundancies A relation in 2NF will not have any partial dependencies

23 LineNumProdNumQtyInvNum InvNum, LineNumProdNum InvNum, ProdNumLineNum Since there is a determinant that is not a candidate key, InvLine is not BCNF InvLine is not 2NF since there is a partial dependency of InvDate on InvNum Qty InvDate InvNum There are two candidate keys. Qty is the only non- key attribute, and it is dependent on InvNum InvLine is only in 1NF Consider this InvLine table (in 1NF):

24 LineNumProdNumQtyInvNum InvDateInvNum inv_noline_noprod_noprod_descqty EmployeeDept enamessnbdateaddressdnumberdname

25 Third Normal Form a relation is in 3NF if the relation is in 1NF and all determinants of non-key attributes are candidate keys That is, for any functional dependency: X  Y, where Y is a non-key attribute (or a set of non-key attributes), X is a candidate key. this definition of 3NF differs from BCNF only in the specification of non-key attributes - 3NF is weaker than BCNF. (BCNF requires all determinants to be candidate keys.) A relation in 3NF will not have any transitive dependencies

26 EmpNumEmpNameDeptNumDeptName We correct the situation by decomposing the original relation into two 3NF relations. Note the decomposition is lossless. EmpNumEmpNameDeptNumDeptNameDeptNum

27 student_nocourse_noinstr_no Instructor teaches one course only. Student takes a course and has one instructor. In 3NF, but not in BCNF: {student_no, course_no}  instr_no instr_no  course_no since we have instr_no  course-no, but instr_no is not a Candidate key.

28 course_noinstr_no student_noinstr_no student_nocourse_noinstr_no BCNF {student_no, instr_no}  student_no {student_no, instr_no}  instr_no instr_no  course_no

29 Practice Part Forms Reports Queries Macros Tables VBA modules

30 Tables - table name - attribute name - attribute data type - attribute properties - key

31

32 Forms different components: -bound controls -unbound controls -calculated controls -drop-down list box (combo box) -check box -option group -command buttons

33

34

35 Subforms

36 Subforms are generated using Wizard

37 Subsubforms

38 Subforms are generated using Subform/Subreport button

39 Switchboard is a special form created using Switchboard manager (not covered)

40

41 Reports seven sections: - report header - page header - group header - details - group footer -page footer -report footer

42

43

44 Queries different kinds of queries: -select queries -action queries Make-Table query, Delete-Table query Append-Table query, Update query parameter query, unmatched query, find-duplicates query - Crosstab query - total queries Group by Aggregate functions: Count, sum, maximum, minimum, Average

45 Queries - unmatched queries

46

47 Query design grid

48 SQL statement SelectFirstName, LastName FromEmployees WhereSalary > 40000

49 Relationships a many-to-many relationship is created by generating two one-to-many relationships.

50 Macros

51 Macro groups

52 VBA modules

53 Private Sub cmdHistoryForm_Click() 'Display the form DoCmd.OpenForm("Employee"),,,, acFormEdit End Sub Private Sub cmdEmployeeForm_Click() 'Display the form DoCmd.OpenForm("History"),,,, acReadOnly End Sub Private Sub cmdExit_Click() 'Exit the application intResponse = MsgBox("Do you want to exit the Compensation" & _ "application?", vbYesNo + vbCritical, "Exit Application?") If intResponse = vbYes Then Application.Quit acQuitPrompt End If End Sub

54 Private Sub cmdSummaryReport_Click() 'This procedure defines an SQL query as the record source 'for the "Retirement Summary" report; the SQL statement 'returns all records 'Assign the report name to the strObjectName variable strObjectName = "Retirement Summary" 'Declare a variable to store the SQL statement, define the 'SQL string strSQL = "SELECT Employee.LastName, Employee.FirstName, " & _ "Office.Region, Contribution.PayDate," & _ "Contribution.[401KEmployee], " & _ "Contribution.[401KMatch], Contribution.[401KTotal], " & _ "FROM (Office INNER JOIN Employee ON Office.[OfficeNumber] = " & _ "Employee.[OfficeLocation])" & _ "INNER JOIN Contribution ON Employee.[SSN] = Contribution.[SSN];"


Download ppt "Review Applications of Database Systems Applications of Database Systems Theory Practice."

Similar presentations


Ads by Google