Introduction CMSC 461 Michael Wilson. Who is this guy? Michael Wilson 6+ years of industry...

19
Introductio n CMSC 461 Michael Wilson

Transcript of Introduction CMSC 461 Michael Wilson. Who is this guy? Michael Wilson 6+ years of industry...

Page 1: Introduction CMSC 461 Michael Wilson. Who is this guy?  Michael Wilson  6+ years of industry experience  C, C++, Java, Python, PHP, etc.  Whatevs.

IntroductionCMSC 461Michael Wilson

Page 2: Introduction CMSC 461 Michael Wilson. Who is this guy?  Michael Wilson  6+ years of industry experience  C, C++, Java, Python, PHP, etc.  Whatevs.

Who is this guy? Michael Wilson 6+ years of industry experience C, C++, Java, Python, PHP, etc.

Whatevs Also taught CMSC 104, 345

Page 3: Introduction CMSC 461 Michael Wilson. Who is this guy?  Michael Wilson  6+ years of industry experience  C, C++, Java, Python, PHP, etc.  Whatevs.

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

Page 4: Introduction CMSC 461 Michael Wilson. Who is this guy?  Michael Wilson  6+ years of industry experience  C, C++, Java, Python, PHP, etc.  Whatevs.

Grading 5 projects

Project 1 – 10% Project 2 – 10% Project 3 – 20% Project 4 – 25% Project 5 – 35%

No other grades

Page 5: Introduction CMSC 461 Michael Wilson. Who is this guy?  Michael Wilson  6+ years of industry experience  C, C++, Java, Python, PHP, etc.  Whatevs.

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

Page 6: Introduction CMSC 461 Michael Wilson. Who is this guy?  Michael Wilson  6+ years of industry experience  C, C++, Java, Python, PHP, etc.  Whatevs.

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

Page 7: Introduction CMSC 461 Michael Wilson. Who is this guy?  Michael Wilson  6+ years of industry experience  C, C++, Java, Python, PHP, etc.  Whatevs.

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

Page 8: Introduction CMSC 461 Michael Wilson. Who is this guy?  Michael Wilson  6+ years of industry experience  C, C++, Java, Python, PHP, etc.  Whatevs.

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

Page 9: Introduction CMSC 461 Michael Wilson. Who is this guy?  Michael Wilson  6+ years of industry experience  C, C++, Java, Python, PHP, etc.  Whatevs.

Questions?

Page 10: Introduction CMSC 461 Michael Wilson. Who is this guy?  Michael Wilson  6+ years of industry experience  C, C++, Java, Python, PHP, etc.  Whatevs.

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

Page 11: Introduction CMSC 461 Michael Wilson. Who is this guy?  Michael Wilson  6+ years of industry experience  C, C++, Java, Python, PHP, etc.  Whatevs.

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

Page 12: Introduction CMSC 461 Michael Wilson. Who is this guy?  Michael Wilson  6+ years of industry experience  C, C++, Java, Python, PHP, etc.  Whatevs.

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

Page 13: Introduction CMSC 461 Michael Wilson. Who is this guy?  Michael Wilson  6+ years of industry experience  C, C++, Java, Python, PHP, etc.  Whatevs.

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.

Page 14: Introduction CMSC 461 Michael Wilson. Who is this guy?  Michael Wilson  6+ years of industry experience  C, C++, Java, Python, PHP, etc.  Whatevs.

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

Page 15: Introduction CMSC 461 Michael Wilson. Who is this guy?  Michael Wilson  6+ years of industry experience  C, C++, Java, Python, PHP, etc.  Whatevs.

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

Page 16: Introduction CMSC 461 Michael Wilson. Who is this guy?  Michael Wilson  6+ years of industry experience  C, C++, Java, Python, PHP, etc.  Whatevs.

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

Page 17: Introduction CMSC 461 Michael Wilson. Who is this guy?  Michael Wilson  6+ years of industry experience  C, C++, Java, Python, PHP, etc.  Whatevs.

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!

Page 18: Introduction CMSC 461 Michael Wilson. Who is this guy?  Michael Wilson  6+ years of industry experience  C, C++, Java, Python, PHP, etc.  Whatevs.

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

Page 19: Introduction CMSC 461 Michael Wilson. Who is this guy?  Michael Wilson  6+ years of industry experience  C, C++, Java, Python, PHP, etc.  Whatevs.

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]