Tuesday, February 7, 2017

CST 363 Week 5

CST 363 Week 5

This week I learned about how transactions and ACID properties are used in a DBMS. The acronym ACID stands for Atomic, Consistent, Isolation, and Durable. I learned about a logical unit of work within a transaction.

I then explored concurrency problems that can occur with multiple users updating a database concurrently. These problems include dirty reads, nonrepeatable reads, and phantom reads. It was then learned that locking is a way to avoid concurrency issues. I learned about the various isolation levels for locking and how to avoid a deadlock. These isolation levels in order of the weakest to strongest locking are Read Uncommitted, Read Committed, Repeatable Read, and Serializable. I also learned about the differences between optimistic and pessimistic locking.

SQL views were also explored this week. It was learned that this is a good way to create different views that may be used later within a DBMS. I learned about the properties of SQL views and how to implement the syntax for an SQL view in MySQL. Views may be used to hide data, hide complicated syntax, and ensuring consistent results from multiple developers working on a single database.

Tuesday, January 31, 2017

CST 363 Week 4

CST 363 Week 4

This week we delved deeper into the design process of database building. I learned about the process of looking for entities is very similar to the process of looking for objects in standard programming. You must look for the nouns that could be entities in the data model. I learned about the difference in weak vs strong entities, how the representation of a weak entity differs from that of a strong entity. The various types of keys where explored and when it is necessary to use them. The concept of referential integrity was learned about when implementing foreign keys in a design.

We then learned about how to create an E-R diagram in MySQL Workbench and how to forward engineer it into a functional .sql script. Conversely, I learned how to reverse engineer a . sql script into an E-R diagram. Through the building of E-R diagrams, I also learned about the implementation of subtypes in database design.

The next step in the design process is the normalize the tables. Without normalization, the tables can experience modification problems. It was also discussed the after normalization comes denormalization as sometimes the process of normalizing can go to far and negatively affect the design of the database.

Tuesday, January 24, 2017

CST 363 Week 3

CST 363 Week 3

This week I learned more SQL statements and how they relate to other coding functions. I learned about SQL grouping, outer join and sub-selects operations.  I was able to comprehend how a SQL select statement is similar to a loop through an array. I also learned about the various aggregate functions SQL uses such as COUNT(), MIN(), MAX(), SUM(), and AVG(). I am now able to differentiate on when to use a cartesian product join or inner join, a left outer join, and a right outer join. I learned that a subquery is like the inner loop of a nested loop control structure in programming. It is important to know that a DBMS is better at optimizing join operations when compared to subquery operations.

I took my first exam for the course which I felt adequately tested my knowledge on what has been learned so far. Again, practice, practice, practice is how I will get better.

On a side note, I was accepted to volunteer at the Game Developer's Conference and start my path in gaining contacts in the game development industry. I am excited for the opportunity that this will afford me in gaining knowledge on how to better myself to enter this industry.

Tuesday, January 17, 2017

CST 363 Week 2

CST 363 Week 2

This week I learned about implement SQL and php statements into HTML forms to be able to implement them in web pages. This was a bit of a crash course in HTML as I have only briefly touched on the subject. I learned about the basics of creating an HTML webpage and how to implement php files inside of them. I like how this showed a real world application of using SQL and php.
I also got a refresher on the various data structures that are used in databases such as linked lists and indexes. It was good to refresh my memory on the various indexes such as B-Tree index and Hash index and when it is good to implement each.
It is evident that a lot more practice will be needed in order to be proficient at writing php statements to be implemented in HTML as I have only scratched the surface. This week has laid a good foundation on which to build upon.
I found it uplifting that I was able to help a classmate out on getting the ball rolling with assignment 3.

Tuesday, January 10, 2017

CST 363 Week 1

CST 363 Week 1

This week I began my Introduction to Database Systems class!!!

I began this class not knowing a thing about SQL language. I found it to be extremely logical in its iterations. Although vastly different than C++, Java, or Python, I found it easy to identify the flow of logic used in creating expressions.

This week I learned how to create a schema in MySQL and run a script to add tables to the schema. I also learned how to select, update, add, and remove data from a database using SQL commands. I look forward to seeing what the next 8 weeks have in store for learning about Database Systems.

Wednesday, December 14, 2016

CST 205 Final Entry

In CST 205, I learned the syntax of programming in Jython. I also learned how to manipulate images, sound and strings in code. Each week sharpened my programming skills and helped me learn key computer science concepts. I was able to strengthen my problem solving skills as several of the labs tested this.

This class definitely relates to my future career. I was able to make two simple text based games and the ability to problem solving for this is essential to my future career. I hope to enter the video game industry as a game developer so this was right up my alley. Videogames are full of images, text, and sounds so I believe that this course has allowed me to scratch the surface of the skills necessary in the industry.

I would advise future students to stick with JES 4.3. I originally started with 5.0 but felt it was too buggy and ended up extending the length of time to work on a project. Until 5.0 is fixed I would recommend all students stick with JES 4.3. Also, keeping and sticking to a calender is essential to turning in work on time and not getting behind. Students should commit at least 14 hours a week to this class. I did get behind a bit during the last week as it was during the holidays and ended up posting this a day late. My recommendation is for the first 6 weeks to keep to your schedule or you will be behind all course long. A suggestion for the course would be to have more tutorial or better in depth instruction on implement Python with html. I had never coded in html and it took me a long time to figure out how to get a variable written in python implemented in html.

Wednesday, December 7, 2016

CST 205 Week 6

CST 205 Week 6

This week I learned about dictionaries in Python. This seems to be a very usefull tool. A dictionary represents a mapping of keys to values. An example would be for mapping english to spanish words such as: 
>>> eng2sp = dict()
>>> eng2sp
{}
And then to add an item we would just use:
>>> eng2sp['one'] = 'uno'
To create multiple key-values you would do something like.
>>> eng2sp = {'one': 'uno', 'two': 'dos', 'three': 'tres'}
The order of key value pairs is random.
o see whether something appears as a value in a dictionary, you can use the method values, which returns a collection of values, and then use the in operator:
>>> vals = eng2sp.values()
>>> 'uno' in vals
True
I learned about using try and except in python to catch exceptions and allow the user to fix
the problem or end it gracefully. These are used similarly to if else statements.

Using the pickle module in Python, allows you to use other data types other than Strings and bytes in
databases. It translates almost any type of object into a string suitable for storage in a 
database, and then translates strings back into objects.