Posts

CST 334 Week 2

Image
  WELCOME TO WEEK 2 Learning Journal Last week, we were introduced to the functions of Operating Systems, such as providing abstraction and being a resource manager. This week, we went deeper into the topic. I learned about what abstraction is, which is the process of a running program. The program itself is something that sits on the disk with many instructions, waiting to start and become a process. Virtualization is then accomplished when there are multiple processes running. In order for the OS to create the illusion of virtualizing the CPU, it needs two things. First, low-level machinery, which is the mechanism, and second, some high-level intelligence. I also learned about the creation of a process. As mentioned before, the program sits on the disk with code and static data, which is then loaded into the process inside the memory. Then memory is allocated for the program's stack. The OS will also initialize the stack with arguments for the main() function. Next, the OS alloca

CST 334 Week 1

Image
  WELCOME TO WEEK 1 Learning Journal This week I learned a lot of new things and revisited some old concepts that I needed practice with again. We reviewed how to convert number bases, which has been a while since I last did it. I actually find it pretty fun. Some of the new things I learned this week included the basic concept of an OS. Some of the things an OS does are virtualization, providing abstraction, and acting as a resource manager. I also learned about bash basics, file commands, and directory commands. I have already memorized a few. Hopefully, I will get to memorize more as I continue to practice. 

CST 363 Week 8

Image
  WELCOME TO WEEK 8 Learning Journal - Final thoughts The three most important things I learned in this course are:  Database Design and Management SQL vs. NoSQL querying Data Integrity and Transactions.  Understanding the principles of design, indexing, and use of primary keys and foreign keys is important in order to create and maintain databases. Gaining experience in querying databases like CRUD operations and complex joins is important to know as well as understanding the differences between each query language. As mentioned, data integrity is very important. For example, transactions in MySQL and ATOMIC operations in MongoDB ensure data consistency and reliability in the different database systems. These fundamental areas give students a solid grounding in database skills, preparing them to design, query, and manage data effectively across various environments. I enjoyed this class and can't wait to apply what I’ve learned in the future. I'm excited to practice and fu

CST 363 Week 7

Image
   WELCOME TO WEEK 7 Learning Journal - MySQL vs MongoDB Both MongoDB and MySQL have query projection, unique keys, and indexes. Relational databases support unique keys and auto-incremented primary keys. In MongoDB, all documents have a unique _id attribute that can also be autogenerated when there is no value set at insert time. Both use a query language to interact with data. MySQL uses SQL, while MongoDB uses its own query language based on JSON-like documents. Another similarity is that both systems support indexing to enhance query performance. MongoDB and MySQL also both support replication, which allows data to be copied for redundancy and high availability. Some differences between the two databases are that MySQL supports query joins, while MongoDB does not. MySQL is a relational database that uses tables, columns, and rows, which enforces a strict schema. MongoDB, on the other hand, is a document database that stores data in flexible, JSON-like documents, allowing easy chang

CST 363 Week 6

Image
  WELCOME TO WEEK 6 Learning Journal - SQL Web App  This week, I learned a lot about database programming, programming languages, and database programming techniques. Techniques such as:  1. Embedded SQL: this involves coding SQL statements directly in a program written in another language. The keywords EXEL SQL precede all SQL statements.  2. Procedural SQL: this extends SQL Language with control flow statements, creating a new programming language.   3. Application Programming Interface(API): this refers to a library of procedures or classes. that link an application programming language to a computer service, such as database, email, or web service.  For this week's project, we implemented an API using MySQL Workbench for our database. I also learned about the Connection, Statement, ResultSet, PreparedStatement, and CallableStatement interfaces, along with their functionalities and functions. 

CST 363 Week 5

Image
  WELCOME TO WEEK 5 Learning Journal - Slow Indexes:   This week, I learned about the concept of slow Indexes. A "slow index" does not refer to a literal slow index, but rather to cases where using an index does not give the expected performance boost in query execution. This misconception comes from the misunderstanding of index functionality. An index lookup requires three steps:  The tree transversal. Following the leaf node chain. Fetching the table data. Therefore, the idea of a slow index is caused by a broken or unbalanced tree is incorrect. Databases use various operations like IDEX UNIQUE SCAN and INDEX RANGE SCAN depending on query specifics. A slow index highlights the complexity of optimizing databases and the importance of multiple factors beyond simply having an index to enhance performance. 

CST 363 Week 4

Image
WELCOME TO WEEK 4 Learning Journal:       I can't believe we are halfway through the course! I have really enjoyed this course and all the material I have learned so far. One thing I have learned so far is that for large complex databases we need to complete 3 phases:  Analysis - Specification of database requirements without regard to implementation. Logical Design - Implements of database requirements as tables, keys, and column in a specific database system. Physical Design - Addition of indexes and specification of how tables are organized on storage media.      I also learned how join queries work. The select statement combines two tables (left and right tables) into a single result using the = operator. However, these columns must have comparable data types. There are many types of join queries such as:  Inner Join: Selects only matching left and right table rows. Full Join: Selects all left and right tables rows regardless of matching. Left Join: Selects all left table