[
Home
|
Lab
|
New Students
|
Courses
|
Research
|
Publications
|
Activities
]
Back to Courses and Activities of Local Interest
Back to CSC 432 Home
CSC 432: Database Management Projects
(Section 001; Call Number 220720)
TH 5:00 PM - 6:15 PM, Withers 328
Munindar
P. Singh
Email address: singh@ncsu.edu
Office hours: TH 2:30PM-4:15PM; TH 6:15PM-7:00PM
Office: Daniels 131C
TA: Pinar Yolum
Email address: pyolum@eos.ncsu.edu
Phone: 515-
Office hours: TH 1:30PM-3:30PM
Office: Withers 402 (Desk 20)
Prerequisites
The following are the prerequisites. Students failing to meet the
prerequisites will be dropped administratively. If you don't have the
prerequisites, please drop yourself to avoid losing an opportunity to
take an alternative course.
Here is a (partial) list of topics that will be assumed:
elementary set theory, relations, partial orders, functions, concept
of a theorem, propositional logic, predicate logic. These topics are
covered in CSC 222:
Applied Discrete Mathematics. You may review Chapters 1
to 6 from the following book, which is sometimes used as the CSC 222
textbook:
Textbooks and software
- Required: Database Systems: A Practical
Approach to Design, Implementation, and Management by Thomas
M. Connolly, Carolyn E. Begg, and Anne D. Strachan, Addison-Wesley,
Second edition, 1999. ISBN 0-201-34287-1.
- Recommended: Course pack. The
course pack contains copies of the transparencies and is online. I
recommend having a a copy of the transparencies handy during class.
- Optional: NCSU runs the Sybase Adaptive Server
Enterprise SQL Server 11.0.2. I don't have any printed book or manual
that I can recommend. If you find a good one, please let me know.
However, there is extensive online documentation, available through
the program sybooks on Eos machines.
Topics
This course will address the issues in building applications using
database management systems. The focus will be on conceptual database
design. The course will use a commercial DBMS (Sybase). The host
languages used in the class will be Java (students may use other
languages for their project). If things work out, we may also use a
commercial data modeling tool.
The following topics correspond to chapters 1, 2, 3, 5, 6, 7, 8,
10, 11, 13, 14, 17, 18, 19, and 24 of the textbook. The indicated
class times are approximate estimates! I might be
able to arrange a guest lecture by a database professional in
industry.
- Introduction to Database Concepts (0.5 weeks)
- Database Environment (0.5 weeks)
- 3-level architecture
- Database languages
- Data models
- Conceptual Modeling
- Database components
- Database architectures
- Data dictionaries
- Project (0.5 weeks)
- Description
- Using the local DBMS
- ER Modeling (1 week)
- Entity types
- Attributes
- Keys
- Relationship types
- Structural constraints
- Potential problems with ER models
- Enhanced ER models
- The Relational Model (1.5 weeks)
- Terminology
- Review of mathematical relations
- Properties of relations
- Keys
- Integrity
- Mapping ER models to relational models
- Logical database design methodology
- Normalization (1 week)
- Purpose
- Information redundancy and anomalies
- Functional dependencies
- 1NF
- 2NF
- 3NF
- BCNF
- Relational calculus (1 week: section 8.1)
- SQL (2 weeks)
- Motivation
- SELECT statements
- Different kinds of selection conditions
- Aggregates
- Grouping
- Subqueries
- Different kinds of JOINs
- Set operators
- INSERT
- UPDATE
- DELETE
- Data definition ((self-study for project)
- Advanced SQL (1.5 weeks)
- Views
- View updates
- Advanced data definition
- Embedded SQL
- SQL API
- JDBC
- Integrity and Transactions (1.5 weeks)
- Integrity constraints
- ACID properties
- Schedules
- Serializability
- Recoverability
- Concurrency Control
- Locking
- Deadlocks
- Timestamping
- Optimistic techniques
- Granularity
- Recovery
- Facilities
- Logs
- Checkpoints
- Recovery techniques
- Relational algebra (0.5 weeks)
- Query processing and optimization (0.5 weeks)
- Basic algorithms (self-study)
- Heuristics
- Semantic query optimization
- Advanced Topics (1 week)
Self-Study Responsibilities
You will need to familiarize yourself enough with database and user
interface tools to carry out the project. A few of the less important
theoretical subjects are also identified as self-study
responsibilities. These are tested on the homework and project
assignments, but never on exams.
Grading
+/- grades will assigned. There will be a lot of work -
please plan to spend about 11-13 hours for this course (outside of
class) each week. Some of the homework assignments may involve also
programming. The programming
project is an important part of the course.
Component | Points |
Exams | 40% |
Homework | 20% |
Project | 35% |
Class participation | 5% |
Important Dates
The official dates are provided here only as a courtesy. I don't
accept responsibility for any errors in those dates.
Event | Date |
Last day to drop with refund | January 20 |
Project teams finalized | January 28 |
Academic difficulty reports due | February 1 |
Last day to drop without grade | February 17 |
Last day of classes | April 30 |
Watch the page
(http://www.csc.ncsu.edu/faculty/mpsingh/local/432/) for
updates.
singh@ncsu.edu