Monday, June 26, 2023

CST 334 - WEEK 1, JOURNAL 1! What I have Learned This Week :)

 First of all, from the resources of readings and all the information behind Operating Systems I learned quite a few things. I also learned a lot through the lab assignment. Here are just a handful of all of the things I learned: 

-The Operating System is the layer between the hardware and the software and is usually referred to as the Virtual Machine 

-The OS can also be referred to as the resource manager. 

-The Operating System has 3 main tasks to perform:

    -It shields the details of the hardware from the application programs, which shields them from the User. 

    -The OS must substitute a set of abstract services to the application programs. The operations need to translate the abstract services into hardware operations.

    - The OS must act as a resource manager, optimizing the use of those resources. It protects against abuse or misuse. 

-How to convert between bases such as 9->binary is 1001 where the first bit is between 0-1, the second bit is either 0 or 2, the third bit is 0 or 4, and the fifth bit is 0 or 8. Adding all the 1's conversion equals 9. -In Octal bases, what you have to do to convert a number into base 10 is multiply each level as an exponent to 8 by the number in that number place. For instance, 345 base 8 is 3*8^2 + 4*8^1 + 5*8^0.   -In Hexadecimal bases, what you have to do is first take it literally to translate it into base 10. Such as, the a3 base 16 is really a*16^1 (here, a is translated as 10 in decimal so it's really 10*16^1) + 3*16^0 (which is basically 3*1) and after adding it all up you get 163 in base 10. 

-In learning about Linux OS, I learned what the kernel is. According to the slides, it is "The lowest-level software core of an operating system that interfaces with the hardware in your computer." In the hierarchy of things, it is between the Applications and the Devices, Cpu and Memory. 

-Before Linux, there was Unix! Also there were many problems that occurred when Linux arrived because it was open software. 

-A shell is an "interactive program that uses user input to manage the execution of other programs". The one we are using in this class is Bash. There are many others; however, such as Bourne, csh and tsch. 

-While working in the Bash shell, I learned some basic commands such as ls, or even better ls -al, pwd which shows the path, cd which changes the working directory, and exit which signs you out of the shell. In my own personal research I learned some more such as clear, chmod, touch and more! 

There has been so much that I have learned in this first week of classes, and I hope to learn so much more in the weeks to come! 


Saturday, June 17, 2023

CST 363 Journal #8, Week #8, Final Journal of the Course! 🥳

 Prompt: Briefly describe what you consider to be the 3 most important things about this course.

First of all, I want to mention that there are a lot of soft notes about this course that made it very enjoyable over all. From the understanding nature of the TA and Professor, to the clarity of topics assigned each week, to the level of ease and challenges that were presented before us, it was overall a very pleasant course to take! 

Secondly, the practical knowledge. Instead of just skimming off the topics learned each week, I very much enjoyed the challenge of the projects and how they made us learn things such as Spring, MongoDB utilizing different software such as Eclipse and MySQL as well. It was very helpful when I was corrected also when I did an incorrect join or not enough joins in MySQL and I really grew to learn the content on a deeper level. 

The last important thing about this course is what it will add to my resume and portfolio. Now that I have this course under my belt, it adds more to my knowledge that will advance me in my career in the future. 

I want to say a final thank you all the people who helped me in the course. I only hope that the people taking it next will learn as much as I did! 

Tuesday, June 13, 2023

CST 363 Journal #7, Week #7

 In your own words what is a data warehouse and why is it important to have another copy of the data in a data warehouse? 

1) What is it?

A data warehouse is a storage place for all the previous information of a user of such data. You are able to analyze the trends over many previous years. Before the data gets sent into the data warehouse it is "cleaned" and integrated to fit into the standards and labels of the warehouse. The data warehouse brings everything together and collects all the information from different parts of the company and puts it all in one place. 

2) Why is it important?

There are a variety of reasons why a data warehouse. The necessity of having previous years' data at a quick and accessible reach is crucial to the success of a company. Sometimes one needs to view trends to see what sells best and what is a low seller so you can determine what you are going to keep in high stock this year and what you need to purchase less of. The data warehouse is important for all kinds of analytical processes and is crucial for every successful business. Furthermore, it is always good to have several backups of data even for recent data just in case an operational data system shuts down. If this data needs to be pulled up again, this shows another reason why it's important to have a data warehouse.

Sunday, June 4, 2023

CST 363 Journal #6, Week #6

 The Similarities and Differences Of MySQL and MongoDB

First of all some similarities of MongoDB and MySQL are that they are both database management systems that allow you to store and retrieve data. They also both support ACID (Atomicity, Consistency, Isolation, Durability) that ensure data integrity. They also both have a query language, MySQL used Structured Query Language and MongoDB used MQL, MongoDB Query Language. 

The differences between the two are many. MySQL is more rigid and structured using a relational data model whereas MongoDB is a NoSQL which is more flexible and is schema-less. MongoDB uses horizontal scalability where you can store data across multiple servers and MySQL traditionally uses vertical scalability with using a single server. Also, MySQL uses joins and foreign keys to handle complex relationships in the data, whereas MongoDB, being a document database, uses document references and denormalization. 

When to choose one or the other of the DMS depends on your situation. If your data has a well-defined structure and it is more suited for a relational model, MySQL would be the better choice. However, if you data is constantly changing and require a flexible schema design MongoDB would be a better choice. If you have a larger database, MongoDB would be better as it uses horizontal scalability. The development speed of MongoDB is better than MySQL if that is an issue. If you want a DMS that really relies on complex relationships etc, then MySQL may be more appropriate. 

MySQL and MongoDB share many similarities and differences and it is up to you to decide what will work best for your application. 

Saturday, June 3, 2023

CST 363 Journal #5, Week #5

Indexes are data structures that provide quick access to specific data in a database table. They allow us to locate and retrieve data efficiently. There, however, seems to be a "myth" about slow indexes. These are cases where an index lookup might not work as fast as expected. There are factors that could contribute to this. For one, there could be a slow index lookup with the leaf node chain. This is when the index may have multiple entries that match the search, leading to a chain of leaf nodes. This contributes to additional overhead. Secondly, a slow index lookup could occur in accessing the table. Even if the index points to the desired data, accessing the corresponding table data can be time-consuming. Every hit in the index may correspond to scattered data across many tables. This causes an additional table access required for each hit, which can lead to a slowdown in the indexing. 

This slow index notion stems from a common misconception that an index lookup solely involves traversing the tree structure. Therefore, according to this idea, a slow index must be caused by a "broken" or "unbalanced" tree. Databases, like Oracle, have certain operations like INDEX UNIQUE SCAN, INDEX RANGE SCAN, and TABLE ACCESS BY INDEX ROWID. These operations reveal that an INDEX RANGE SCAN, which involves traversing the tree and following the leaf node chain, can lead to a reading of a large part of the index, which can lead to slower performance. 

A slow index can potentially lead to issues if the index lookup process encounters challenges such as following the leaf node chain and accessing corresponding table data. These can be detrimental to the efficiency of an index lookup and we must understand the limitations of indexes so we can better optimize database queries. 

CST 462S - Service Learning

Overall, my experience working as a volunteer for NTS was great and I wouldn't have changed it any way! What went well?  I'd say ove...