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. 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). |
|
Examples:
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..
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..
Since this is a Senior Level Computer Course, there are a number of expectations that I have:
Familiarity with Data and Discrete Structures, Windows, MS Office and C++ .
Assignments will be read prior to class. By this I mean that you should be familiar with the definitions, diagrams and concepts presented in the chapter and be able to discuss / raise questions in class. You may not understand everything that you read, but you should make an effort to be familiar with the material.
That you can read the ACCESS 97 text and/or use the help command to work out examples.
That if there is something that is not clear, you will ask questions. If you e-mail me before class, I can either get back to you or spend time in class addressing the issue.
I will try to address any questions that you have:
If the question is of general interest and can be addressed in class, I will include it in the class discussion. Otherwise, I will post it to the WEB.
If the question requires that I do some additional research, I will either answer it during the next class or via the WEB.
If the question is of interest to only a few people, I'll either address it after class or via the WEB/e-mail.
If questions require longer explanations or if there are a number of questions in a particular area, I may want to group them together and address them in the next meeting.
If I need to correct or expand on something covered in class, I will post it to the WEB.
Since this course is not a pre-req. for
another course and since the subject matter is evolving, we may choose to
spend more or less time on some topics or spend some time addressing
additional topics. For example, one area that is not cover well in either
text is the growing use of WEB based databases and the issues surrounding
them.
|
Database Management, Fifth Edition. F.R. McFadden
and J.A. Hoffer, |
|
Access 97 Bible, Cary N. Prague, Michael R. Irwin, Michael R.
Arwin,
1997 ($39.99) |
The bibliography contains additional titles that may be of interest.
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. |
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. |
|
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.
|
GRADING |
Midterm 30% Final 30% Projects 20% Class Discussion 20% |
|
GRADES |
|
| 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.