CS 440-01 Database Management -- Fall 1999
SYLLABUS

Instructor: Richard Varron, Programmer I, WPUNJ                                     Phone: 1-973-720-3307
Section: CS 440-01                                                                                      Time: MW 3:30-4:45
Room:  H209                                                                                                 Mailbox: Atrium
Office Hours: MW 12:30-1:30 (College Hall 220 call first), after class or  by appointment.
E-Mail:                                         rich@wpc.wpunj.edu
E-Mail For Non-text Material:  varronr@wpunj.edu
Prerequisites: Data Structues:CS342, (C- or better)
                       Computer Science II: CS240, (C- or better)
                       Discrete Structures: CS260 (C- or better)

UPDATED 11/22/99  This week we are going to work with Object oriented databases. There is a manual of an Object Oriented database here. I have the the program disk if there is a machine in the Coach House that we can load it on.

FINAL EXAM: WED 12/15/99 2:00pm-4:45pm

Test questions 10 questions at 10% each. Most of the questions require a short answers along the lines of the "Problems and Exercises" questions at the end of the chapter.  However, justification of your answers in some cases is required. The question breakout as follows by topic:  

Client/Server (1)
Distributed Databases (1)
Database Administration (4)
Data Warehousing(1)
SQL (1) [w/several parts] (1)
Object-Oriented Databases(2)

 

I've been working with databases over 22 years so if you have questions about databases, make sure that you ask them in class.   

In the second half of the course, one of the areas that I'll be going into more detail than the books do is in the area of WEB based databases as a number of people have expressed an interest in this area and it is one of the fastest growing areas of database design. I will be giving more details on the lectures as dates get closer and I know what we've covered. Also, I will be going over less of the book in class as everyone in class can read the material and ask questions if there are any points that are not clear. We are going to spend the second half of this course looking at some practical applications of the theories presented in the book. 

10/20 - Since we started our discussion of SQL / Relational Algebra, I think what I am going to do is continue the discussion on SQL (ch. 9). We have already seen parts of SQL and last week we went over joins (pp. 354-363). I will also be bringing up denormalization from ch 7 (pp. 260-265) This will give you some skills in being able to process data. Take a look at this from my Discrete Structures class as it has some good notes about SQL. Whatever we don't get to, we will do next class. We covered the SELECT FROM WHERE GROUP BY ORDER BY and HAVING clauses. 

10/25 - I am going to finish up the discussion of SQL / Relational Algebra. First we need to discuss the INSERT, UPDATE and DELETE statements. Then we need to look in more detail at the CREATE TABLE and CREATE INDEX statements. Lastly, I want to go over JOINS. To the extent that chapter 7 issues or issues that deal with WEB implementation come up we will deal with them.

10/27, 11/1,3: Working with WEB based database servers: Active Server Pages (runs only on EI), Cold Fusion (runs on all browsers), ActiveX(IE), JAVA(all), JavaScript(all). What I would like to do over the course of these 3 classes is to have you work on developing WEB pages connected to databases. We may end up taking some additional time with this subject as it is of great practical importance.

10/3: ODBC driver; QBE, and Object Oriented Programming of databases in Visual Basic V6.0 Programming of Active X controls as well as the use of  VB 6.0 DB Wizards. IN 123B.

11/8 - Using SQL a a backdrop, I am going to do some work on optimizing data requests using some of the concepts from ch 7 as well as some of my own observations. I want to relate some of these issues to Operating Systems and Data Structures. I also want to take a look at data types that various systems use. Denormalization I am also going to go over some Client/Sever considerations

11/10 Continuation of 10/3 discussion. Reports, Queries and Forms in ACCESS. Connection with other data. I am going to demonstarte some of my Database WEB work to show you how various client/server techniques are integrate. This is based in part on the code give out in class. sources. IN 123B..

11/15 Denormalization, Access methods and RAID from ch 7; Middleware and other client/sever issues from ch 8.

11/17: Distributed Databases: Theory and practice.

11/22 & 24: Object oriented database design. This is going to be more theoretical than above.

11/29:Data Warehousing

12/1 Issues in database administration  

12/6,8 - Practical database issues 

 

 

Old items:

Notes on how to set ranges in MS ACCESS

Data for class project (download the database which goes with the text. Some of the HW assignment will involve working with this database.) Meta Data Printout

I am going start to cover chapter 3. In the process, I will be referring to the section in chapter 6 related to converting E-R diagrams into tables (pp.218-236) as well as talking about normalization (pp. 237-241) as it comes up. I will also be giving notes from other texts such as Kroenke's Database Processing so that you can some other views. If there is something that you don't follow or if I am covering material too quickly/slowly, let me know.

 

Definition of FD equivalence and the difference between equivalent and equal in the case of FDs:

Two subsets, X, Y  of all attributes in a database are said to be equivalent (X ~ Y) if X->Y and Y->X.

A relationship that is Reflexive (X=X) Symmetric (X=Y, Y=X) and Transitive (if X=Z and Z=Y then X=Y) is called an equivalence relation. 

In general, things are equivalent under some constriction. That constriction is induced by some set or operation. For example,  integers may be equivalent if they can be divided by 2;the same set  would not be equivalent if they were divided by 3. The division relation induces an equivalent class and the result is called a quotient set. So we can have 4~2 (mod 2), but 4 not ~ 2 (mod 3).  

There is a more comprehensive discussion of this topic on my CS260 relation notes.

Examples:

  • someone's SSN could be equivalent functionally to their Employee ID number. They may not be the same number, but  in all respects function the same way and one may be replaced by the other. 

  • A candidate key and a primary key may be equivalent since either may be used and both behave the same way; however, they are not equal to each other

  • A generic drug may be biologically equivalent to another drug, but they are not equal, same thing. 

  • The SQL queries may be equivalent to each other if they both produce the same results; on the other hand, they may not equal each other because the path to the data may differ.

  • A table with a attribute A with values of M/F is equivalent to a table with an attribute B with values of Male/Female.

  • Two course may be equivalent, but may be different course. The CS440 course taught last year is equivalent to that taught this year since both count in the say way to graduation.  

  • A hashing function may induce an equivalency. The same would be true about a mapping function that meets the rules above

  • Two E-R graphs may we equivalent to each other but may not look like each other

If something is equal it is also equivalent, but not the converse is not always true. By saying something is equivalent, we can say that they behave the same way, yet are not identical.

There is a more comprehensive discussion of this topic on my CS260 relation notes.

 

If you need to review material from Discrete Structures, go to the notes I have for that course. I would strongly suggest looking over the section on functions and relations. There is also a page on functional dependencies in relations . There are also notes on graph theory as well as P and NP problems. There are a lot of good notes out there that I will be referring you to. Much of the material in the next 3 classes will rely on some of these concepts. The notes on trees are also good to look at.

The Mid Term MONDAY OCT 18 exam is likely to consist of a question involving a description of a company's needs with a requirement that you design the E-R diagram and related tables and then normalize the tables if needed. This will be a multipart question which will test you understanding of the process thus far. Other shorter questions that may be included involve analyzing situations and determining the next course of action or critiquing situations. This may include items like definitions, normalizations, business rules, functional dependencies, establishing domain and other types of constraints There may be one theoretical question on functional dependencies or on Relational Algebra. IF YOU HAVE ANY QUESTIONS, E-MAIL ME..  


TERM PROJECT

The basic theme over the next 4-6 classes will be to develop E-R diagrams and convert them into tables. As we develop the E-R diagrams, we want to look at potential normalization problems. Lastly, we want to look at the incorporation of business rules into our models. While it may at times be annoying, as things come up, I will refer you to later sections in the book so that you can see where we are going or, if you are interested, you can read more on the topic. I made a change in the schedule so that the mid-term will be after chapter 6 is done since chapters 3, 4 and 6 are closely related to the conceptual modeling of databases and we will be going back and forth among these chapters over the next few classes.

On Monday 9/27, we are going to continue to look at converting E-R diagrams into tables and go over some of the "problems and exercises" at the end of the chapter (make sure that you do them before class). Some of the examples I will be covering are the conversion of many-to-many relationship and associative entities (which are basically done the same way.) [pp. 223-7]. I may also go over mapping unary relations (227-228). See notes on Chapter 6.  and go over the new notes from Chapter 3.There are some notes from other texts on naming fields and tables as well as what to look for in a key. We will also look at chapter 12 in the ACCESS book (bring your book) on creating relations and maintaining referential integrity.  (You may want to play around with this on your own using the author's database. Again, if there are any questions on the material or if there is something that you want to revisit or go into more detail, let me know.  The questions so far in class have been very insightful.

On Wednesday 9/29, we will continue with what we started on Monday. We will do some additional exercises from the back of the chapter. I may give a brief introduction into Super and Subtypes from ch 4 so that you will have a feel for the material in the first part of chapter 4.

On Monday, 10/4, we will be going over business rules (145-159) and start on a formal discussion of the Relational Model (208-217).Look at this for a more detailed theorems on functional and multivalued dependencies Also check the additions to the notes in Chapter 6. 

On Wednesday, 10/6 , we will continue with the Relational Model and then discuss Normalization (232-244) . There will be a handout on functional dependencies as well as one on DKNF.  Some of the areas that I will be looking at is the 4NF, BCNF and DK/NF. We will also start to discuss some of the rules of functional dependencies. See theorems on functional and multivalued dependencies. While we are not going over multivalued dependencies, you may want to look at some of the rules for those as well.

On Monday, 10/11, I will continue to discuss functional dependency by giving some proofs  from the Yang handout (I may do one out and have you look at some of the others as they are very similar. They are also in the handouts.).  I will then discuss the graph theory which can be used to diagram functional dependencies.  (I would strongly suggest that you look over my notes graph theory on from my Discrete Structures courses or go over the material in your Discrete Structures book. Some of the areas I will go over are:
a) Graphing functional dependencies    
b) Finding a redundancies
c) Finding extraneous attributes
d) Finding Covering for FD graphs with composite nodes
e) Finding implications graphs
f) Finding superfluous nodes.
This will give you a feel for the theory behind FDs as well as giving you some preparation for taking graduate CS courses. (see Yang, Date, Kroenke) The algebra of functional dependencies trends to be theoretical, but it will allow use to develop rules to normalize relations as well as give you an insight into database
research. This will also give you some insight into the theory of minimization of SQL requests as well a developing some idea for denormalization (see ch 7, pp260-267). Look at this from a more detailed theorems on functional and multivalued dependencies.I have two handouts: One covering the topics mentioned above (which I will be covering in class) and the other describing analgorithm to determine a minimal covering graph.


On Wednesday, 10/13, I will be going over Relational Algebra check these notes) (see Date) with an initial look at how they will be applied using SQL (ch. 9). Some of this will be theoretical, but it will allow us to develop rules for structuring queries. This is a review of set theory that you saw in Discrete Structures. I am hoping to do the student evaluations at the end of this class, so bring a #2 pencil to class..

 

 


BACKGROUND OF INSTRUCTOR


Deadlines to Drop Course
Texts
Course Outline
Grading
Plagiarism
Academic Integrity Policy

Deadlines to Drop Course

9/9/99                100% refund
10/6/99              50% refund
10/20/99             last day to drop class

Texts  

Database Management, Fifth Edition. F.R. McFadden and J.A. Hoffer,
     Benjamin Cummings, 1998 ($82.05).

Access 97 Bible,  Cary N. Prague, Michael R. Irwin, Michael R. Arwin, 1997  ($39.99)
[If you have another ACCESS book, you can use instead of this book.]

The bibliography contains additional titles that may be of interest.


Course Information                              

 Course Description: 
     Topics include data collection,  representation, modeling,
     and storage; file versus database approach to data management; database
     environment; principles of logical and physical database design. Emphasis will
     be placed on Entity-Relationship and relational data models. Other topics
     include client-server environment, database security and integrity, and
     database administration.  A substantial project on the design and
     implementation of a database will be assigned.
	   

Course Objectives:

     1.   To appreciate data as an important corporate resources
     2.   To learn various issues and techniques in data modeling 
     3.   To understand database environment
     4.   To learn the principles of logical and physical database design
     5.   To gain hands-on experience with design of database application
          design
     6.   To be aware of the trend of the database management
      
   

Course Contents:

1.   An Overview of Database Systems

          a.   Data as a major corporate resource
          b.   File versus database approach
          c.   Motivation, objectives and evolution of database systems
          d.   Database system environment
          e.   Types of database systems


2.   An Architecture of a Database System

          a.   ANSI-SPARC three levels of architecture
          b.   External level
          c.   Conceptual level
          d.   Internal levels
          e.   Data independence
          f.   The roles of database management system (DBMS)
          
3.   Conceptual Database Design with Entity-Relationship Model

          a.   Data modeling concepts
          b.   Methodologies for conceptual design
          c.   View design
          d.   View Integration
          e.   Schema documentation and maintenance

4.   Relational Database Design

          a.   Relational data structure
          b.   Relational databases
          c.   Integrity rules

5.   Functional Dependence and Normalization

          a.   Functional dependency
          b.   First, second, and third normal forms
          c.   Good and bad decompositions
          d.   Higher normal forms

6.   Relational Systems

          a.   Data definition: base tables and indexes
          b.   Data manipulations and the Structured Query Language (SQL)
          c.   The system catalog
          d.   Typical implementations

7.   Object-Oriented Systems

          a.   Motivations
          b.   Objects, methods, and messages
          c.   Classes, Instances, and collections
          d.   Class hierarchies
          e.   Typical object-oriented systems

 8.   Other topics

          a.   Database Administration related issues
          b.   Implementation and Physical Design
          c.   Distributed and Client/Server Database Systems
          d.   Trends
     
Teaching Methods:
Classroom lectures, discussions, and problem-solving session.
Homework. Readings form outside sources. 
 Evaluation:

     1.   Mid-term and final examination.
     2.   Programming projects 
     3.   Homework assignments.
     4.   Class Discussion


ATTENDANCE:

Since each section builds on the previous section, regular attendance is required. Attendance is taken daily. 6 absences will result in a grade of "F" at the discretion of the instructor. Your computer disks, textbook, homework and notes are an integral part of your attendance and class participation. Not being prepared for class will result in a lost of your class grade for the day (an absence).  Game playing, non-class related discussions or other disruptive behavior will result in lost of class participation grade (an absence) for that day.

GRADING:

There will be a mid-term and a final each worth 30%. 20% of your grade will be based on your participation in class discussions in which you are expected to relate your experiences in such areas as working with data, assigned projects and your observations of the material covered in class. 20% of the grade will be a project. 


If there are extenuating circumstances for absences or handing in assignments late, the reason should be submitted in a well written formal E-mail message as soon as is feasible.

Requests for extensions should be made via E-mail prior to the due date outlining the reasons for the extension and including what work has been done thus far. In addition to writing practice, this will provide you with the communications skills needed in today's business world by having you present your concerns and requests in writing. As in any business situation, how you state your case will have an effect on whether or not your request will be granted. As in business, there will be times when you need to call because of time constraints and then follow up in writing. Verbal request must be followed up in writing.

 
If there are any problems with getting an assignment done or any other complications during the semester, feel free to either see me before class or call me. I work full-time as a programmer in College Hall and I am in from 6:30am until 3:00pm and I am logged on constantly.

 

GRADING 

Midterm                 30%	            Final             30%
Projects                20%                 Class Discussion  20%      

   

GRADES

  • C good understanding of material in the Basic Sections.

  • B solid grasp of material in the Basic Sections and a fair grasp of the material in the Advanced Section.

  • A solid grasp of material in the Basic section along with a good understanding of the material in the Advanced section and Related Sections.

  • D fair understanding of the material in the Basic Section.

  • F inadequate understanding of material in the Basic Section. Plagiarized assignments, handing in work done for another class, 6 or more absences, failure to turn in work, copying assignments (including journals, cheating or any other violation of the Academic Integrity Policy (see attached or Student Handbook pp. 28-30).

  

READ CAREFULLY
 

Plagiarism is trying to pass off someone else's work as your own without proper citation. This includes not only paraphrasing material from outside sources without citation but also includes using programs and work from your sources without citations. It includes taking ideas from sources without attribution (including a classmate's work). It also includes copying from your source by changing a few items here and there.  In all respects, your work should be your own voice except where you have indicated that you have incorporated ideas from others. Remember, it is not improper to use outside sources-- in fact it is frequently a good idea to do so-- as long as you clearly indicate what are your ideas and what are the ideas of others. 

If you work with a classmate on a work, put both your names on both papers to indicate the collaboration. If only part of the work was worked on jointly, then cite those parts. Not only is this the correct thing to do, but it avoids the problem of who was/were the original writer(s) when, by sharing ideas, you come up with a work that is similar to someone else's. In any event, both works/programs should be distinct with each writer contributing his or her own ideas. (i.e.. if two people are working on an assignment, the ideas may be similar, but the papers should be written by each person.) Work which is in whole or substantially identical will both receive an "F" since it is plagiarized unless there is proper citations. 

If you are unsure about what constitutes plagiarism or what you need to avoid it, make sure you ask or put a note on your work. 

Why is plagiarism frowned upon? The reason is that you are submitting work that was done by others and handing it in to be graded as you own work. In addition, it is not fair to the people that do their own work. The minimum penalty is an F on the paper. Subsequent violations may result in an "F" for the course. (See Student Handbook for College policy.) 

You are the visitor to this site.