At the halfway point of the course, I feel like I've learned a lot of information regarding databases. Some of the things that stand out are
1) Virtual tables - These allow you to utilize a specific scope of data held in the database tables, but they aren't actually stored in memory
2) Composite primary keys - Up until now, I'd only ever utilized single-column primary keys, so it was interesting to learn that unique combinations of columns can act as a composite primary key
3) The idea of a cascade - I always thought it was very complicated how tables were related, but learning about how they keys can connect tables and create a domino effect when data is updated or deleted made me less intimidated by the subject
4) Aggregate functions - These allow you to select a summarized value from a set of rows. For example, you may choose to SELECT AVG(test_scores) FROM our_class in order to find the average test score achieved.
5) Relational Algebra - Codd's operations, which are used for manipulating tables. These provide the theoretical foundation of SQL and each algebraic expression can be translate to an equivalent SQL query
I'm not sure if I have specific questions regarding databases, but I do have weak topics. My biggest weakness is definitely regarding what goes on behind the scenes. Computer architecture is not my strong suit, so I'm still trying to get a handle on how data is stored and how indexes, etc. actually work. Another topic I'd like to get more comfortable with is normalization. Right now I'm going back and forth between understanding and having to re-trace my thinking every time I consider normalizing a table. The third topic I could use improvement with is the idea of different joins. I feel very comfortable with some types of joins yet very unsure of how to use other efficiently.
No comments:
Post a Comment