Page 1 of 2
Al-Imam Mohammad ibn Saud Islamic University
College of Computer and Information Sciences
Computer Science Department
The purpose of the course project is to mimic the development of a “real” database by providing
you with data requirements for you to design a conceptual model in the form of an Entity
Relationship diagram, translating the conceptual model into a relational schema, implementing the
relational schema in SQL and populating the database, querying and modifying the database by
SQL statements. This project is divided into 2 parts. Each part covers a topic that is covered in this
course and should be submitted according to its due date.
Social Network Application Database:
Create a social network database for an application like Twitter, where you will store the network
the associated data of each user. This application identifies each user by their user ID in addition to
storing their password, their email, their profile picture and their locations. A user can have several
Each user is allowed to submit as many posts as they would like. Each post has a post ID and
timestamp. The timestamp keeps track of the day, month, hear, hour and minute of the post. The
post can be text, images, videos or links. It is possible to have a post that can be of more than one
type of these posts. A user cannot post an empty post.
If the post was a link, it should be linked to the source page of the website of the post (URL). If the
post contains images then each image should have a name and an extension. The number of images
should not be more than four images in one post. If the post contains a video, then the name,
extension and the duration of the video should be stored. A post should not contain more than one
video. If the post contains text, then the number of characters should be counted. A post should not
exceed 128 characters. The text could join other posts in a Trend list if it contain a hashtag. Each
trend has a unique title and the number of posts joining the trend by counting the posts with the
same the hashtag. The trend list calculates its ranking according to the number of posts.
Users can LIKE any post or REPLY on a post. A reply has a reply ID. A reply is like a post but if
the post is deleted a reply is deleted as well. A singly post can have many replies but a reply replies
to one specific post.
A user can also follow other users. Users are divided into regular users and premier users. When a
user has a number of followers more than 10,000 followers then this user is considered a premier
user. Premier users accounts post Ads. For each Ad the premier user gets paid according to the
number of views. Each Ad has an ID, a price, a content, and a company name. Each month, the Database Term Project
Page 2 of 2
premier user gets paid after calculating the number of Ads, the price of the Ad and the number of
views of each Ad. A premier user should sign a contract to agree on the terms of adding Ads into
their accounts and for receiving payments. A premier user should add their bank account info to
have the payments transferred. The bank info includes, their full name, bank name and IBAN
• Team formation: This is a team project; each team formed of 3 members. This step should
be decided from the beginning before moving forwards.
• Read the project specification carefully and draw a conceptual design data (EER) model to
accurately represent this set of requirements. Clearly specify any additional assumptions
that you are making. Most notably, you should use any tool (Data Modeling Tool) to draw
You should submit a .pdf file via Blackboard that contain the followed parts before the deadline:
• The team members
• Problem description (Copy it from here).
• An EER diagram with all assumptions.
• Thursday, March 18th
• Map your EER model to a relational database schema diagram. Identify keys and referential
integrity constraints. Feel free to change your conceptual model (Phase#1) if needed.
• Use a DBMS such as Oracle Database express or MySQL to implement your project.
o Define your database:
▪ Use appropriate naming conventions for all of your relations and attributes.
▪ Write SQL (DDL) statements to create database, tables other structures.
▪ Define attributes and for each one, specify if NULL is permitted, or its value
▪ Primary key and foreign keys must be defined as appropriate.
▪ Explain where and how referential integrity constraints have been incorporated.
o Populate your database. Insert at least 6 rows into each table (unless you have
cardinality constraints). The data values should be reasonable.
o Create at least two views and eight queries. Database Term Project
Page 3 of 2
The attributes in this project can be numeric, text, Boolean, or time. You are not required to store
multimedia data such as images. However, many databases contain multimedia data.
Therefore, you are given the option to use either text data for profile image and any other attributes
that is expected to contain an image such as “imageName.ImageExtention” or go an extra mile and
actually store an image in your database for extra grades.
This task is a bonus task. The group who accomplishes this task in their submitted project will get
THREE extra points.
You should submit a full .pdf report via Blackboard that contain the followed parts before the
• A cover page.
• Problem description (Copy it from here).
• Your final version of your EER Diagram.
• Relational database schema.
• Implementation (DDL, and DML) statements; a SQL code for each creation and insertion.
• SQL queries statements: SQL quires and screenshots your results.
• Thursday, April 22nd
The project is worth 10 points divided as follows
• EER diagram (4 points)
• Relational database schema. (2 points)
• Implementation (DDL, and DML) statements (2 points)
• SQL queries statements (2 points)
In this course, we encourage collaboration in discussions with your peers and instructors on
understanding requirements and concepts. However, the work you turn in for each assignment must
be your own. You should NEVER duplicate any part of the project by another student or any other
individual. In addition, you should not allow another student to copy your work. If any of your
work includes ideas or quotes from a book, paper, or web site, you must clearly cite the original
source. The first violation of this policy will result in a grade of 0 for the assignment. The second
violation will be reported and each person involved will be subject to the University Dishonesty
Be creative in your ideas. You can support your description with pictures, charts or diagrams that
would make your system understood
Such a cheap price for your free time and healthy sleep
All online transactions are done using all major Credit Cards or Electronic Check through PayPal. These are safe, secure, and efficient online payment methods.