Posts

Showing posts from September, 2024

Week 20 - ERDs, Ordered Indexes and Normalization

  This week I got hands on with ERDs and ordered indexes. One of our labs this week helped me understand the purpose and concept of using ER (entity-relationship) diagrams. I created a real-life scenario database system that tracks things like customers, orders and inventory. I learned how much of a powerful tool MySQL Workbench. It really helped simplify the process of designing relational databases. I’m really impressed that I can essentially make a diagram that can also help me create a database on the fly. After doing this lab I’m not as intimidated by ERDs as I was before. Another lab picked up from the previous labs and introduced me to the concept of indexes in databases to speed up retrieval in large datasets. The use of binary search in the index is important because it shows how much faster it is compared to a normal search. This is important because in real-world scenarios we deal with big sets of data, so efficiency is key. 5 notable things I’ve learned so far. ...

Week 19 - Are Heaps of Trees a Forest?

Perhaps Heaps & Trees would be a more fitting title for this week, pardon my attempts at wittiness. This week I got hands-on experience with B+ Trees and Indexing and implementing a heap file system in Java. I’ll admit it was a seemingly light week, but there was plenty of content to wrap my head around. I was able to simulate an operation on an online B+ tree. By simulating these operations, Lab 9 forced me to understand how data structures like B+ trees can retrieve data efficiently. I dealt with things like node insertion, updates, and the effects on tree structure. I understand why B+ trees are widely used in databases for indexing. They maintain sorted data and allow searches, sequential access, insertions, and deletions all while being efficient. Understanding trees is such an integral part of being a computer scientist. In Lab 12 I learned how to implement a TableHeap class that stores rows in 4096-byte blocks on disk. I was able to understand the workings of file-based ...

Week 18 - Joining More Than Just Concepts

This week I expanded on the skills learned from week one. I also want to note that I’m starting to see that our online zybooks textbook is quite resourceful. It can be a bit time consuming but getting through it definitely helps me understand the concepts better. Homework 2 helped strengthen my skills in SQL and aimed to better my understanding of key SQL concepts like joins, groupings, aggregations, and subqueries, while applying these skills to manage and analyze data within databases. It also challenged me to deal with SQL errors like missing tables. Lab 10 focused on implementing a natural join using a nested loop. Rows from two tables are combined based on matching values in their common columns. This way we merge tables that without duplicate columns. This involved manipulating schemas and tuples to form the one set from multiple data sources. Tuple merging is important because it allows us to combine related data from multiple tables into a single database without having to ...

Week 17 - Database Management Fundamentals

This was the first week in the Database Management course. The transition from Software Design into this course was smooth and I’m looking forward to expanding my skills in data. It was fun working with SQL and Java and putting them together into real-world applications. I got hands-on experience with SQL queries, debugging errors and handling constraint violations, as well as understanding how Java classes can model and manipulate data efficiently. Homework 1 involved executing a series of SQL queries on a small course database, just to get familiarized with SQL. The lab had me write queries to get information from the database, such as instructor names and salaries, with conditions like sorting and filtering by department. I practiced using SQL commands to reinforce my understanding of relational database structures through the use of joins, subqueries, and filtering. Labs 1 and 3 had me work with SQL operations and focus on the manipulation of databases with inserting, updating ...