Group [GROUP NUMBER]
Replace [GROUP NUMBER] with your assigned group number. Replace the sample entries and add or remove rows so each group member has one row.
| Student ID | Full name |
|---|---|
| [432031453] | [ِAbdulrahman Almehdhar] |
| [STUDENT ID] | [Benjamin] |
| []STUDENT] | [Malik] |
| [STUDENT ID] | [Abdulshakur] |
If your site is public, include full student IDs only with course authorization. Submit the complete roster privately if required.
Course overview
This course builds on introductory databases and SQL. Students examine how a database management system processes queries, compare physical design choices, and apply techniques for transaction management, recovery, and access control.
- Level
- Undergraduate
- Recommended background
- Relational modeling, keys, joins, and basic SQL
Learning outcomes
By the end of the course, students should be able to:
- Compare B+ tree and hash-based access methods for different query patterns.
- Translate SQL queries into relational algebra and use equivalence rules to rewrite query plans.
- Interpret execution plans and use measurements to evaluate indexing and query rewrites.
- Explain transaction isolation, concurrency anomalies, and the role of logs in recovery.
- Build views and stored procedures, and grant database users only the privileges they need.
Core topics
Storage and file organization
Pages, records, file layouts, and disk I/O.
Indexing and hashing
B+ trees, hash-based lookup, collisions, and overflow.
Query processing and optimization
Relational algebra, join algorithms, execution plans, and cost estimation.
Transactions and concurrency
ACID properties, isolation levels, locking, and concurrency anomalies.
Database recovery
Logging, checkpoints, and undo and redo operations.
SQL programming and access control
Views, stored procedures, roles, and privileges.
Practical work and assessment
A sample project is a PHP application backed by MySQL. Students design the schema, build search pages using views, compare a slow query before and after indexing, call a stored procedure from PHP, and verify access restrictions using separate database accounts.
Assessment may include lab exercises, quizzes, exams, and a project. Refer to the official syllabus for grading weights and deadlines.
Deploy this page to a web server
Each group must register its own domain in DigitalPlat, deploy to its own web server, and publish this page at https://advanceddb.<GROUP_DOMAIN>/. Replace <GROUP_DOMAIN> with your group's full registered domain. For example, if your domain is group12.dpdns.org, your site address is https://advanceddb.group12.dpdns.org/.
- Prepare the page. Edit the group number and roster in the HTML, save the file as
index.html, and open it in a browser to check the content. - Set up DNS. In your group's DigitalPlat Hosted DNS zone, create an A record with the relative name
advanceddband your own server's public IPv4 address as the value. Verify the result withnslookuporResolve-DnsName. - Upload the file to your group's server. Transfer
index.htmlvia SCP or SFTP using your SSH account. Place it in your site's document root, for example/var/www/advanceddb. Ensure the web server can read the file and traverse its parent directories. - Configure the web server. On Ubuntu with Nginx, configure a server block with your hostname as
server_name, your document directory asroot, andindex.htmlasindex. Enable the configuration, runsudo nginx -t, then reload Nginx if the test passes. - Enable HTTPS. For a public site, check that cloud and host firewall rules allow TCP ports 80 and 443. After public HTTP works, configure a certificate for your hostname using your host's HTTPS feature or Certbot with Nginx. Check certificate renewal and the HTTP-to-HTTPS redirect.
- Verify the result. Open the HTTPS address from outside the server. Confirm that it loads your group page and that the navigation and roster display correctly. To publish later edits, replace
index.htmland reload the page in your browser.