Project 6.0

Mar 21, 2012

Objective

Project 6: Design and implement a database using a client-server DBMS (MySQL) and implement a simple program that demonstrates the use of an ORM.

Project 6.0: Design and implement the database in MySQL.

Scenario

The doorbell startles you! Entranced at the computer (a bad habit) you get up to see who it could be at 2:30AM. You open the door and see a FedEx man.

"(insert your name)?" he asks, raising an eybrow.

"Yeah, that's me," you say. He scans the package with a handheld device that resembles a sandwich, but is a very dark grey. The laser glows in the dim light and the sandwich-thing emits a loud beep as he shoves the package into your hands.

"Ok. Great. Have a nice day."The FedEx man quickly turns and leaves.

"Strange, no address or anything on this package," you think as you tear it open. "I don't care what it is, I haven't received a package from anyone in so long it could be worms and I'd -- oooh, a phone!" A strange, futuristic looking phone (strangely shaped like a banana, but painted gunmetal grey) lands in your hands. Suddenly, it rings. "Uhhh... heh- Hello?"

"Hello, (you). Do you know who this is?" asks the dark voice on the other end.

"Morpheus?" you say.

"Yes. I've been looking for you. I don't know if you're ready to see what I want to show you, but unfortunately you and I have run out of time. They're coming for you, and I don't know what they're going to do."

"Who's coming for me?"

"Look out the window and see for yourself."

"What, right now?"

"Yes. Now. Do it slowly. The back patio window."

Out across the back yard you see three clowns wearing black suits, black ties and dark sunglasses. "Oh, poop!"

"Yes."

"What the hell do they want from me?"

"I don't know, but if you don't want to find out I suggest you get out of there."

"How?"

"I can guide you but you must do exactly as I say."

"Ok."

"The house across the street from you is empty."

"But what if they -"

"Go, now!" shouts the voice, and you grab your laptop and run out the front door, scared for your life. With manic strength you burst right through the front door of the house across the street, leaving a human-shaped hole in the wall. "Stay here for just a moment. When I tell you, go to the end of the hall, to the room at the end of the hall. Stay as low as you can. Go, now. Good. Now, in the corner there is a desk."

"How do you know all this?" you ask, incredulously. How can this be happening?

"We don't have time. To your left there's a desk. Go to it. Open your laptop. You can use the ethernet jack on the wall at your feet. Now, design and implement a relational database."

"No way. No way. This is crazy."

"There are two ways out of this house. One is that database, the other is in their custody. You take a chance either way. I leave it to you."

"This is insane. Why is this happening to me? What did I do? I'm nobody. I didn't do anything. I'm gonna die. Poop. I can't do this."

Requirements

This project will exercise your ability to work with MySQL, implementing a database schema given an ERD. In addition, you will be programming against this database using an ORM, rather than writing your SQL by hand. The first step of this project is to design and implement your database. The database must:

Prepare the Project

Create a subdirectory of cs403 called project06. This is your dedicated working directory for all 6.x project assignments.

Create a README file inside your project06 directory.

In your README file, describe what Project 6 is. For example:

Mos Def, CSCI403
Project 6

This is my working directory for creating a database-backed application using an ORM.
This application will ________________ ...

Domain

Our domain for this project will be zoos, and we will be collaboratively narrowing down our ER schema in class together. Our first iteration schema result is below.

This version of our ER schema adheres to the following description and constraints.

Design & Implement the Database

List the entities and relationships you are modeling in your README file.

Next, use paper to draw your intended database schema. Do this before your SQL DDL statements! It will help you make sure your design is sound before implementing the actual schema.

Once you're satisfied with the design, implement the schema with SQL as a MySQL database called "zoos." Use lower case, plural words for your table names.

Grading Criteria (300 pts)

Using mysqldump, submit a .dump of your database to blackboard. Do not attach a file -- simple paste the output of mysqldump into your bboard submission.

This is due by 11:59PM on Monday, March 26.