Introduction CMSC 461 Michael Wilson. Who is this guy? Michael Wilson 6+ years of industry...
-
Upload
amberly-hines -
Category
Documents
-
view
215 -
download
1
Transcript of Introduction CMSC 461 Michael Wilson. Who is this guy? Michael Wilson 6+ years of industry...
IntroductionCMSC 461Michael Wilson
Who is this guy? Michael Wilson 6+ years of industry experience C, C++, Java, Python, PHP, etc.
Whatevs Also taught CMSC 104, 345
Stuff we’ll cover Relational databases
Relational Model E-R Models SQL Database design Storage and File Structure Indexing Transaction management Concurrency management
Non-relational databases (NoSQL) Examples: Cassandra, MongoDB, Accumulo
Grading 5 projects
Project 1 – 10% Project 2 – 10% Project 3 – 20% Project 4 – 25% Project 5 – 35%
No other grades
My opinions on CMSC classes I prefer projects and coding to exams
We’ll have plenty of that I like focus much more on the practical than
theoretical (as much as possible, anyway) A bit tough at the beginning of this class
The subject can be dry, so I tell terrible jokes Pity laughs are appreciated
I prefer to give you the opportunity to play with new technology
Projects Git for source control and project submission
(through BitBucket.org) AWS for database hosting
Everyone gets a $100 Amazon AWS code Amazon does educational grants, which is sweet!
AWS Relational Database Service (Amazon RDS) Don’t need to use this, but it’s available
2 person groups Git logs – we’ll be looking for who checks code in If you work together and one person checks in, note
that in the commit comment
Contact information [email protected] Office: ITE 201A
Office hours 7:00 PM – 8:00 PM TuTh Adjunct faculty
I work a 9-5, not on campus if I’m not teaching
Responsiveness I try to be responsive, but sometimes
work and life get in the way
Corny joke contest Corny jokes are the best
The more groan inducing, the better Throughout the semester, at the end of each class,
I’ll open the floor to anyone who wants to make a corny joke Keep them appropriate! I don’t want to get yelled at.
At the end of the semester, there will be a raffle Each joke you tell gets you another entry in the raffle 2 $10 Steam gift certificates and 1 $20 will be
available
Questions?
What are databases? Databases are repositories of queryable,
interrelated data Databases provide easy ways to
organize data, validate and enforce data structures
Generally, you’re modeling data to reflect some real world scenario Akin to OO design
Database Management Systems (DBMS) A database management system, or
DBMS, is basically a piece of software that implements a database Many different database servers, types,
etc. MySQL, PostgreSQL, Oracle, etc. Flat file databases (SQLite, h2)
The term “database” and “DBMS” are used interchangeably
Server based databases All run via network connected servers Oracle
Kind of the “king” of enterprise databases PostgreSQL
Up and coming open source challenger MySQL
Very popular, heavily used on the internet Also going through some turmoil due to its
purchase by Oracle Watch MariaDB, fork of MySQL
Server based databases When use these?
Central pieces to larger applications Good if your application is data driven In terms of architecture, several
applications can use the same DB Multiple servers using the same data
Apply to basically any problem domain Web applications, video games, flight
control software, etc.
Flat file databases Databases that can literally be stored in
a single file or on disk without server configuration
SQLite Popular database, used by Firefox and
Android h2
Java based database
Flat file databases Very useful when you don’t want to go
through the pain of setting up big servers for a database Configuration data is easy to store in
SQLite Easy to query, easy to store
Good when you don’t need to communicate data updates to other computers
Some caveats about databases Databases can have pretty wildly
different feature sets MySQL, PostgreSQL, and Oracle differ in
subtle ways This can be really annoying if you’re trying
to code a generic app that can use any backing store
SQL features are a little different between the three as well
Sanity Warning I’m going to be providing these
throughout the semester Documenting some of the BS I’ve
experienced throughout my professional career
Feel free to chime in Disagreement is good too Discussions are encouraged!
Sanity Warning Microsoft Access
These databases somehow seem to grow absolutely out of control
They’re meant for small-ish applications, and rarely for anything mission critical
That doesn’t mean you won’t see Access being used for things it should never be used for
Homework Sign up for a BitBucket.org account
Git repository Use your umbc.edu e-mail, make sure to
confirm the verification e-mail they send you
E-mail your username to [email protected]