Course Description

Overview of database systems, ER models, logical database design and normalization, formal relational query languages, SQL and other commercial languages, data warehouses, special topics

Prerequisites

CPSC 221

Credits

3

Special Notes

Admission to the course is handled by the Department of Computer Science and not by individual instructors. For any issues relating to course registration or waitlists, please contact the department directly. You can also find more information about the department's waitlist policies on the FAQ page.

FAQ

Registration

  1. I want to register for this class but SSC says that there are no more seats available.
    Registration is centrally controlled by the Computer Science (CS) department and individual instructors have no say over who gets admitted to the course. The best advice we can give is to sign up for the waitlist.

    Curious about the waitlist? The UBC Computer Science department has a FAQ page about waitlists.

  2. I am on the waitlist and SSC says that there are spaces in the class. When will I be moved into the class?
    The department will periodically process students from the waitlist into the course so please be patient.

  3. I am not registered in the class but can I sit in?
    Due to COVID safety protocols, we cannot allow for non-registered students to sit in on the class.

  4. I would like to audit the class. Who should I talk to get this process started?
    The conditions for auditing the class are:
    • You have to already be registered in the class
    • You have to pass all the course components except for the final exam (which you will not have to take).

    If you are willing to accept these conditions, follow the instructions listed here to get the process started.

  5. I don't have the listed prerequisites but I have previously completed courses that are similar to the listed prerequisites. Am I still allowed to take this course?
    The CS department adheres to a strict prerequisite checking policy. If you do not have the listed prerequisites, you will receive a letter at the beginning of the semester that will tell you what to do next. Please keep an eye out for that letter - if you do not respond to the letter, you may be deregistered from the course.

Course Material

  1. How is this course different from CPSC 368? Which course should I take?
    CPSC 368 is focused on the use of databases and not how to design databases. It approaches databases from the perspective of "I already have a database that has been set up so how do I get what I need out of it?" whereas 304 approaches databases from the viewpoint of "I need to do something with a database from scratch so how do I start?". Topics such as normalization (how to make the design of your database less redundant) and relational algebra (which talks about the underlying concepts for other query language such as SQL and are necessary to understand how to efficiently execute queries) are not taught in 368.

    CPSC 368 is designed for data scientists and will use Python instead of Java or PHP. It also doesn't have a term project - it has a series of assignments over the term which can be extended to different small data science projects.

    CPSC 368 is not a prerequisite for 404. If you take 368 and decide that you love databases so much you want to take another course in it, you will have to take 304 before going to 404. (This is a decision by the UBC Senate and not the course instructors so there is nothing we can do to change this requirement.) If you take 304 after 368 (or vice versa), the second course will not count towards your degree requirements (i.e, you have to pay for it but you can't count it towards your "x credits of an upper year Science course" type of requirement).

    Ultimately, which course to take will depend on what you want to do for the next 2-3 years. Do you want a software development job? If so, the 304 term project allows you to showcase a larger range of technical abilities. Do you want to go into data science instead? 368 will have assignments that give you the opportunity to develop small projects to present (but the technical portion is not nearly as complex as 304).