Download Syllabus for Database Management Systems Course

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Relational model wikipedia , lookup

Database model wikipedia , lookup

Transcript
Course Name: Database Management Systems
Course Code: CS 323
Lecturer: Kwadwo Gyamfi Osafo-Maafo ([email protected])
Faculty Intern: Abdul Muhsin Iddris ([email protected])
Overview
The course aims to introduce students to the understanding, concepts, design, implementation and
use of database management systems (DBMSes) and databases (DBs). Students are expected to
understanding the backend or underlying DBMS, using DBs, and data driven applications.
The DBMS part of the course involves understanding the approaches, techniques, algorithms,
models as well as the underlying database system architecture as query planners, buffer managers,
log and recovery managers. Students will also learn models used at various levels – from conceptual
to physical – including entity relationship (ER) diagrams, enhanced entity relationship (EER)
diagrams, and unified modeling language (UML) diagrams.
The various roles and users of database systems will also be explored. This helps people appreciate
the different activities in industry or academia. For industry, students must be able to use some of
the popular databases or at least be familiar with some systems to make transition from one system
to another easier. For academia or some industries you will also need to know how things are put
together from scratch to create new products, improve existing solutions or research prototypes.
There are currently many database systems and approaches to databases. There are relational and
non-relational, and amongst these there are various categories such as key-value, document, graph,
object, relational or hybrid. The course has a relational and SQL bias, but there will be some
exploration of some noSQL databases. Additionally, we will also look at how some applications can
connect to use databases. Students will also be required to use at least one programming language
(e.g. Java) to connect to and manipulate database systems in creating database driven applications.
We hope we provide you a well-rounded and strong foundation in your education.
Hours and Notices
Lecturer is on campus Mondays and Wednesdays. Please make an appointment as necessary. The FI
is on campus Mondays, Wednesdays and Fridays.
If you ever need to skip class or an activity for any reason, please be sure to properly document
(email, doctor’s/nurse’s permissions slips, etc).
Resources
Course Website
Textbook
Reference Material
Please go to sis.ashesi.edu.gh to access all courses. The course link is
available there
http://sis.ashesi.edu.gh/courseware/
Jeffrey D. Ullman, Jennifer Widom
A First Course in Database Systems, 3rd Edition
http://infolab.stanford.edu/~ullman/fcdb.html
Ramez Elmasri, Shamkant Navathe
Fundamentals of Database Systems, 6th Edition
Database Resources
MySQL
MySQL.com
dev.mysql.com/doc/
Oracle
Oracle.com
http://docs.oracle.com/cd/E16655_01/index.htm
Programming Resources Java
http://docs.oracle.com/javase/7/docs/
http://docs.oracle.com/javase/tutorial/jdbc/
SQL Online
sqlfiddle.com
** Additional resources (notes, course videos, e-books) will be made available as necessary.
Speech
Students who take this course are expected to be inquisitive/explorative, creative, and scholarly.
Students will explore (on their own and outside class time) different technologies and ideas in databases.
They will be expected to read some articles and come to their own conclusions about what is important.
Students will create a few databases over the course of the semester. Initially, the lecturer will provide a
lot of framework but getting to the end students should be able to go from requirements, through
planning, designing and implementing their own databases. Part of the course also covers using other
programming language (e.g. Java) to create applications and these also give students a lot of opportunity
to design software.
Students are expected to be scholarly by reading across different difficulty levels, learning academic and
industry terminology and standards along the way, reference where necessary, and write out their work
and solutions in clear, unambiguous, and concise presentation.
Honor and Discipline
Students are expected to behave and conduct themselves honorably for all class activity (including
examinations, quizzes, exercises, homework, and laboratory sessions). Students are expected to provide
their own work and make no attempt to mislead anyone (including graders or teaching staff) on the
authorship or source or ideas or content for any activity.
Unless stated, students may read any material online, from books or discuss with friends, family and on
the internet. However, students MUST make sure to cite all sources (even friends and family). Students
are encouraged to keep a journal for the class in which they write out who they have spoken to for help
or discussion on which topics.
Student MUST write out their own assignments (no copy and paste or look and type). If you are unsure
of how much help or how much collaboration is too much, ask one of the teaching staff.
Learning Goals
Ethics and civic engagement means you should try to relate what we do in the course to the community,
organization and society. Leadership is not only about exercising control over others, but also about
doing your part to make you are taking ownership of your learning experience.
Critical thinking and quantitative reasoning is expected through student readings, class contributions,
and discussions. Students are expected to read the text and other assigned readings, and make a sincere
effort to think for themselves instead of simply waiting for answers. Throughout the course, you will
have opportunities to submit materials and speak in class, and we hope these give you opportunities to
practice communication. Communication and thinking is not only about speaking, but also in how you
present written work or code.
Students may have to work in teams or work together as course mates to have discussions that build
overall knowledge in the subject area. This course may also have a lot of content, but students should
demonstrate curiosity and skill to find make the most of technology and material available. There is a
rich text book as well as many online resources (including videos) available.
At the end of the course, students should have technical competence, as well as soft skills, in the
majority of topics and activities of the course.
Course Activity
The course involves roughly two lectures and a practical/discussion session. However, this course
will adjust the amount of time spent on each depending on what works best getting students to
understand the material.
All class activity that requires digital documents should be submitted on courseware.
Even if the system is down for some reason and you send email (as proof you did the
work) be sure to put it up online as soon as courseware comes back up.
Students are expected to complete all assignments and exercises by deadline, and failing to do so
submit all work done till that point.
Students should ask questions and participate in all activity to make sure they are keeping up with
both the material and course work.
Students are encouraged to take notes in class (do not rely on lecturer or assistants to make note for
you), discuss with friends (do not rely on everything to be discussed in class), and make sincere effort
to read and cover material outside of class. Ideally, the class should be time for discussions and
questions on what students do not understand, and not an exercise to recite or read the textbook.
Course Activity Grading
This course is offered to students under the Ashesi Honor Code. In summary, students are expected not to
cheat even when there is no supervision, and to report all cheating to the appropriate authorities.
In-class Graded activities (quizzes – which fall under exercises, and Examinations) are to be done
independently and without references or books or other resources like the internet.
Take-home Graded activities (exercises which are to be done out of class) are to be done independently
but use of reference material is allowed. Please note that we have a rich source of examples and exercises
in the textbooks and from the classroom, so avoid discussing the exercise questions directly and instead
seek help on understanding the material or similar examples from the textbook.
The breakdown of the grade is as follows.
Exercises
Participation
Exam 1
Exam 2 (Final)
40%
5%
20%
35%
This course is graded using the newest grading scale.
Grade
A
B+
B
C+
C
D+
D
F
Percent
80%
75%
70%
65%
60%
55%
50%
Below 50%
Exercises
All exercises and activities are put into an exercises group. If it is not Exam or Participation (i.e.
attendance) it is considered an exercise. This grading style allows me to give as many exercises as is
necessary to enable students learn the material. In some weeks we may have just one exercise, and in
other weeks we may have 2-3 exercises.
Exercises that do not count (practice activities/homework) will be clearly indicated.
Points are assigned to each to signify the weight. For example, a quiz could be 10 points, and a
programming assignment could be 5 points. In general, take-home exercises will tend to be given
fewer points compared to in-class exercises.
Exercises will include take-home work, practical work, in class quizzes, surprise quizzes, and writeups (i.e. read a journal article and summarize).
Topics
Introduction to Databases
Models and design of Databases
Entity Relationship Models
*Enhanced Entity Relationship Models
*other models for ER and EER
Relational Model
Relational Algebra
Design Techniques
*diagrams to code or implementation
*normalization
*algorithms of normalization
Implementation of Databases
SQL Queries for implementation
SQL Queries for manipulation and retrieval
Application of Databases
Creation of Applications that use Databases (using Java to connect to databases)
*Advanced Topics
Introduction to Security
None-SQL Representations and Storage (flat files, xml, csv, objects)
* Non-Relational Databases (key-value, graph, document, and OO)
If there is time, we will look at MongoDB, Google AppEngine, Neo4j, and CouchDB as
examples of different or non-relational or NoSQL databases.
Database Systems Internals
Study of some Algorithms in Database Systems (e.g. join)
Transaction and Recovery Algorithms
Storage, Buffers and Memory
Presentations or Journal Writing
Distributed Databases, Parallel Databases, Scientific Databases, NoSQL, Objects and Databases