Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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