Posts

Showing posts from October, 2024

Week 25 – The OS Universe

This was the first week of the curriculum’s Operating Systems course and it had me quickly embarking on using Linux commands and learning basic shell programming. The goal this week was to get comfortable with the Linux environment by learning the fundamentals of commands, working with a text editor, and creating simple bash scripts. Lab 1 provided the perfect amount of difficultly in that it allowed me to set up my Linux environment and get my working applications in order to complete a simple bash script. In our discussion this week, we discussed topics related to file management and shell scripts. This helped consolidate the information presented in the course. The lecture material provided us with guides on a range of foundational concepts such as programming and computer architecture. We reviewed techniques for number conversions between binary, decimal, octal, and hexadecimal, and were introduced to the fundamentals of the C programming language. We were also provided useful mate...

Week 24 - DROP TABLE IF EXISTS CST363;

Below are 3 topics covered in Database Management that I consider to be important: ERDs & Data Integrity I’m not a newcomer to ERDs but after this course I realized how powerful they are in modeling real-world systems. I now understand the importance of using ERDs to map out entities, their attributes, and the relationships between them before actually implementing them in database. MySQL Workbench proved to be a great tool for this and made this process much easier by allowing me to visually organize and structure the database. Working on scenarios that included customers, orders, and inventory helped me get comfortable designing relational databases and enforcing key relationships. The enforcement of data integrity using constraints like primary keys, foreign keys, and schema validation also helped ensure reliability in data. Web Application Integration with JDBC and MongoDB Integrating databases into web applications was probably the most exciting part of the course. Usi...

Week 23 - MongoDB vs MySQL

This week I worked with MongoDB and focused on database operations. These involved using MongoDB commands and scripts to manage and manipulate collections of documents. In one of our labs, we used a simple database in the context of customers and orders. In another, we transitioned from using relational databases, to using NoSQL. In a group project we focused on transitioning a prescription drug web application from using a relational database (as done in last week’s lab) to using MongoDB. We implemented MongoDB with Spring Boot and set up entity classes and repositories. The lab used the MVC (Model-View-Controller) pattern, with an emphasis on controllers and model classes interacting with MongoDB. This enhanced my understanding of NoSQL databases and showed how MongoDB can handle data structures and interactions more flexibly than relational databases. Learning these MongoDB concepts taught me the fundamentals of working with NoSQL databases. I worked with inserting, retrieving, upda...

Week 22 - Database Design for Web Apps with JDBC

  The week I delved into JDBC (Java Database Connectivity) to connect my Java application to a MySQL database. It provided hands-on experience with database operations within a Java application. The use of JDBC was carried on in a group project where my group and I designed a JDBC web application. We used Java and Spring Boot to manage a pharmacy prescription system. All in all, I was excited to be working with Java methods used by the web application and plugged into the database. My group encountered multiple issues with validating RxIDs and pharmacy names, and when changing patient and doctor data. This forced me to think about how to carefully craft my Java and structure SQL queries properly. It also helped me understand the importance of ensuring user input matched the data in my database. This has been one of the best exercises for understanding relational database design. In another assignment I used SQL to manipulate and analyze data from a normalized campaign contribut...

Week 21 - Mastering Transactions

This week,  a part of a Lab exercise, I learned how MySQL handles transactions and issues with multiple users accessing the same data. I learned how transactions work, where several SQL commands are treated as one unit to keep the data accurate. The lab showed me how row-level locking stops different users from changing the same data at the same time. I also learned about compensating transaction. These types of transactions fix issues after a transaction has already been saved. Overall, I was able to understand how to build systems in a safer way to ensure proper management when errors occur. In preparation for future collaborative projects and for solidifying my understanding of modeling I created a mockup web design application for a pharmacy database. This helped me strengthen my database design and entity management skills for real-world applications. Among these things, I also re-enforced my understanding of working with SQL queries in relational databases by working w...