design database schemas for efficient data representation implement database ...
Beginning Database Design: From Novice to Professional (2nd ed.). Apress.
Change Home Page Layout | See Course Stream
DATABASE MANAGEMENT Jump to Today This course, INF 385M will enable you to: design database schemas for efficient data representation implement database schemas using MySQL learn the basics of programming in Ruby
create interactive web applications that display information from a database and modify the content of the database, using the Ruby on Rails framework taught in class. discuss significant issues in database management and ask the right questions when working with database administrators and software designers There are no prerequisites for this course;; it is appropriate even if you've never done any programming or behind the scenes work with computers. If you do have significant, recent, experience or training with programming and databases this is not the course for you. In this case I require you to drop the course and welcome you to audit parts that you think will extend your knowledge. In particular this course is not suitable as a interdisciplinary course for Computer Science students, if that's you and you are interested in grappling with data issues look at INF 384C 385T
(https://www.ischool.utexas.edu/courses/class_details?ClassID=3392) or Matt Lease's section of INF
(https://www.ischool.utexas.edu/courses/class_details?ClassID=3401) .
While there are no prerequisites, the projects you will build will require an understanding of HTML, including tables. So, if you do not have a good working grasp of HTML (including forms) you will be required to attend the "Bootcamp" offered by the iSchool IT group through their Short Courses (https://www.ischool.utexas.edu/technology/instruction/short_courses.php) . The date for this is still being decided but will most likely be on a weekend around the third or
fourth week of the semester. I will make an announcement when the date is decided. You will need an iSchool account for this course. iSchool students will have this already, non-iSchool students need to obtain one through iSchool IT (https://www.ischool.utexas.edu/accounts/) .
Your projects will not be graded on the basis of design or presentation, just functionality and database design. However, many students wish to use the projects in their portfolios, if that is the case I encourage you to make the effort in design. In this case you will also want to take the CSS bootcamp.
Professor This course is taught by James Howison. My office is UTA 5.404. My office hours are by appointment by email:
[email protected] . Please don't hesitate to set up a time to follow up on class material. The TA for this class is Eunyoung Moon, an iSchool PhD student.
Class Meetings The class meets Mondays 12 - 3pm in the iSchool computing lab classroom (UTA 1.210A). You are expected to attend every class. If you cannot attend you must let me know in advance.
Computing resources The vast majority of this class happens on the class server, so really we'll just be editing text files and uploading them from the local computers. I will be teaching using the Mac computers in the lab. This is primarily for a consistent experience for the class in the choice of text editor and uploading files to the server. You are welcome to use your own laptop or windows computer, but I won't be able to stop to help you with those.
Course Texts There are no required texts for the course, but you will find some of these useful.
Recommended Texts: Forta, B. (2005). MySQL Crash Course. Sams. Link at Amazon.
(http://www.amazon.com/MySQL-Crash-Course-Ben-Forta/dp/0672327120)
Churcher, C. (2012). Beginning Database Design: From Novice to Professional (2nd ed.). Apress. Link at Amazon.
(http://www.amazon.com/Beginning-Database-Design-
Novice-Professional/dp/1430242094/ref=sr_ob_1?s=books&ie=UTF8&qid=1346352056&sr=1-1)
(Note that the first edition version is also fine.) An advanced reference guide for MySQL that's available online at UT is: Reese, G., & Ebooks Corporation Limited. (2009). MySQL Pocket Reference SQL Functions and Utilities (2nd ed.). Sebastopol: O’Reilly Media, Inc. UT online link (http://www.utxa.eblib.com/patron/FullRecord.aspx?p=443454)
Neither book is required but both are useful. Introductions to programming in Ruby and to using Ruby on Rails are available online. A good one with free introductory lessons is Code School (https://www.codeschool.com/) (TryRuby and Rails for Zombies). CodeSchool also has paid access (useful for tracking your activities and access to advanced modules).
We'll be covering everything with materials in class, but you will find these tutorials useful.
Weekly Assignments There are assignments due weekly for this course. They are due 11.59 pm on the Saturday following class. Late assignments will receive zero. Since we have class on Monday, the TA and I need Sunday for grading to give prompt feedback. The assignments, and grading rubric, will be released on Canvas during class, so we'll go over the assignment and ensure everyone knows what's required. I recommend setting time aside each week, ideally on Tuesday afternoon/evening or Wednesday to do your assignment, that way you'll know quickly if you have trouble and can attend the review session. Each assignment will be turned in online, usually by uploading a PDF or Text file, and/or providing a URL to your assignment on the class server.
Project A major portion of the course is producing a working, database backed website. You'll work through designing the data model and use cases, creating the database and creating an interface, using Ruby on Rails, that allows you to create, display, edit and delete database records. This work will be done in groups of 3 or 4 people and will unfold throughout the semester. Take a look in the Project section of the Assignments for the elements, taking you from ideas, to designs, to prototypes and finally to working projects. I encourage you to make your prototype as great as possible since trying to fit it all into the last two weeks is a recipe for stress and not meeting your own expectations. I will show example projects in the second class.
Schedule Below is the class schedule, including links to the assignments (those are bolded). Date Jan 13
Day
Details Mon
Class 1 - Card Exercise (https://utexas.instructure.com/calendar?
12pm
event_id=888061&include_contexts=course_1078245#7b2273686f77223a2267726f75705f636f757273655f31303738323435227d)
to 3pm
Jan 20
Mon
No Class - MLK day (https://utexas.instructure.com/calendar?
12pm
event_id=888063&include_contexts=course_1078245#7b2273686f77223a2267726f75705f636f757273655f31303738323435227d)
to 3pm
Jan 25
Sat
Project Ideas (https://utexas.instructure.com/courses/1078245/assignments/3118580)
Jan 27
Mon
Class 2 - Database Design (https://utexas.instructure.com/calendar?
due by 11:59pm 12pm
event_id=888065&include_contexts=course_1078245#7b2273686f77223a2267726f75705f636f757273655f31303738323435227d)
to 3pm
Feb 1
Sat
ER Diagram for Bookstore (https://utexas.instructure.com/courses/1078245/assignments/3118586)
Feb 3
Mon
Class 3 - Database Design II and Administration (https://utexas.instructure.com/calendar?
due by 11:59pm 12pm
event_id=888096&include_contexts=course_1078245#7b2273686f77223a2267726f75705f636f757273655f31303738323435227d)
to 3pm
Feb 8
Sat
From ER to Database (https://utexas.instructure.com/courses/1078245/assignments/3118587)
Feb 10
Mon
Class 4 - Basic SQL Queries (https://utexas.instructure.com/calendar?
due by 11:59pm 12pm
event_id=888098&include_contexts=course_1078245#7b2273686f77223a2267726f75705f636f757273655f31303738323435227d)
to 3pm
Feb 15
Sat
Queries 1 and Reverse engineer design (https://utexas.instructure.com/courses/1078245/assignments/3118588)
Feb 17
Mon
No Class - Project Group Meetings (https://utexas.instructure.com/calendar?
due by 11:59pm 12pm
event_id=888069&include_contexts=course_1078245#7b2273686f77223a2267726f75705f636f757273655f31303738323435227d)
to 3pm
Feb 22
Sat
Group project description and management plan (https://utexas.instructure.com/courses/1078245/assignments/3118592)
Feb 24
Mon
Class 5 - SQL Queries II (https://utexas.instructure.com/calendar?
due by 11:59pm 12pm
event_id=888100&include_contexts=course_1078245#7b2273686f77223a2267726f75705f636f757273655f31303738323435227d)
to 3pm
Mar 1
Sat
Queries 2 (https://utexas.instructure.com/courses/1078245/assignments/3118590)
Mar 3
Mon
Class 6 - Query Review and SQL performance (https://utexas.instructure.com/calendar?
due by 11:59pm 12pm
event_id=888103&include_contexts=course_1078245#7b2273686f77223a2267726f75705f636f757273655f31303738323435227d)
to 3pm
Mar 8
Sat
Queries 3 (https://utexas.instructure.com/courses/1078245/assignments/3118595)
Mar 10
Mon
No Class - Spring Break (https://utexas.instructure.com/calendar?
due by 11:59pm 12pm
event_id=888115&include_contexts=course_1078245#7b2273686f77223a2267726f75705f636f757273655f31303738323435227d)
to 3pm
Mar 15
Sat
User stories (https://utexas.instructure.com/courses/1078245/assignments/3118581)
Mar 17
Mon
Class 7 (https://utexas.instructure.com/calendar?
due by 11:59pm 12pm
event_id=888105&include_contexts=course_1078245#7b2273686f77223a2267726f75705f636f757273655f31303738323435227d)
to 3pm
Mar 22
Sat
Ruby - Strings and Variables (https://utexas.instructure.com/courses/1078245/assignments/3118596)
Mar 24
Mon
Class 8 (https://utexas.instructure.com/calendar?
due by 11:59pm 12pm
event_id=888109&include_contexts=course_1078245#7b2273686f77223a2267726f75705f636f757273655f31303738323435227d)
to 3pm
Mar 29
Mar 31
Sat
Mon
Project Database Design (https://utexas.instructure.com/courses/1078245/assignments/3118582)
due by 11:59pm
Ruby - Guessing Game (https://utexas.instructure.com/courses/1078245/assignments/3118589)
due by 11:59pm
Class 9 (https://utexas.instructure.com/calendar?
12pm
event_id=888110&include_contexts=course_1078245#7b2273686f77223a2267726f75705f636f757273655f31303738323435227d)
to 3pm
Apr 5
Sat
Rails - Models (https://utexas.instructure.com/courses/1078245/assignments/3118591)
Apr 7
Mon
Class 10 (https://utexas.instructure.com/calendar?
due by 11:59pm 12pm
event_id=888111&include_contexts=course_1078245#7b2273686f77223a2267726f75705f636f757273655f31303738323435227d)
to 3pm
Apr 12
Apr 14
Sat
Mon
Project Site Draft (https://utexas.instructure.com/courses/1078245/assignments/3118583)
due by 11:59pm
Rails - Views (https://utexas.instructure.com/courses/1078245/assignments/3118597)
due by 11:59pm
Class 11 - Project Workshop (https://utexas.instructure.com/calendar?
12pm
event_id=888113&include_contexts=course_1078245#7b2273686f77223a2267726f75705f636f757273655f31303738323435227d)
to 3pm
Apr 21
Mon
Class 12 - Guest Speaker & Workshop II (https://utexas.instructure.com/calendar?
12pm
event_id=888114&include_contexts=course_1078245#7b2273686f77223a2267726f75705f636f757273655f31303738323435227d)
to 3pm
Apr 26
Sat
Project Site and Report (https://utexas.instructure.com/courses/1078245/assignments/3118584)
Apr 28
Mon
Class 13 - Project Presentations (https://utexas.instructure.com/calendar?
due by 11:59pm 12pm
event_id=888117&include_contexts=course_1078245#7b2273686f77223a2267726f75705f636f757273655f31303738323435227d)
to 3pm
Project Presentation (https://utexas.instructure.com/courses/1078245/assignments/3118585)
due by 12pm
Other
Extra Queries (https://utexas.instructure.com/courses/1078245/assignments/3118593)
Weight the final grade based on assignment groups Database Weekly Assignments: more info...
ER Diagram for Bookstore
Feb 1 at 11:59pm
out of 5
From ER to Database
Feb 8 at 11:59pm
out of 5
Queries 1 and Reverse engineer desi… Feb 15 at 11:59pm
out of 5
Queries 2
Mar 1 at 11:59pm
out of 20
Queries 3
Mar 8 at 11:59pm
out of 7
Ruby and Rails: more info...
Ruby - Strings and Variables
Mar 22 at 11:59pm
out of 5
Ruby - Guessing Game
Mar 29 at 11:59pm
out of 5
Rails - Models
Apr 5 at 11:59pm
out of 5
Rails - Views
Apr 12 at 11:59pm
out of 5
Project Assignments:
Project Ideas
Jan 25 at 11:59pm
out of 5
Group project description and mana… Feb 22 at 11:59pm
out of 5
User stories
Mar 15 at 11:59pm
out of 5
Project Database Design
Mar 29 at 11:59pm
out of 5
Project Site Draft
Apr 12 at 11:59pm
out of 10
Project Site and Report
Apr 26 at 11:59pm
out of 25
Project Presentation
Apr 28 at 12pm
out of 5
Optional:
Extra Queries
30%
20%
50%
0%
ER Diagram for Bookstore
Edit
The assignment for this week is to produce a database design for a bookstore. Think about four main activities that your database should support: 1. Searching books by authors, or authors by books. 2. Tracking the current stock of books (hint: needs only one additional attribute). 3. Ordering books from suppliers (by phone or mail). 4. Keep a catalogue of customers, including delivery addresses. No need to map books to customers. That means that the customer info doesn't connect with the book/supplier tables, we'll add those connections in class next week. Your submission should be a single PDF showing a diagram that includes: 1. An ER diagram 2. Relational Vocabulary 3. Sketch of relational tables Follow the diagramming that we have used in class. The handout is here: EntityRelationshipHandout.pdf If you have a design question about something not covered above just go ahead and make an assumption, note it on your document and design to that assumption. e.g., whether more than one supplier can provide a book? Either is fine, just note which assumption you went with and design to that. Of course feel free to write to me if that solution doesn't work for your question :) Please work to minimize the boxes and relationships. You don't have to (and shouldn't) track orders of books, either from customers or from the store to suppliers. Don't use an Entity when an attribute will do and don't add relationships that can be found indirectly (e.g., Author to supplier, since suppliers might provide only some of an Author's books, so we'd get there via the Book/Title entity). FWIW, my solution (not the only correct way of doing it) has only four Entities (but five could also make sense, if one had made another assumption).
Points Submitting File Types
5 a file upload pdf
Due
For
Available from
Until
Feb 1
Everyone
Jan 22, 2013 at 10am
-
ER diagram rubric Criteria ER diagram correct
Relational vocab and tables agree on foreign key
Sketch of tables show example data
Correct relationships modeled
Ratings Full Marks
No Marks
1 pts
0 pts
Full Marks
No Marks
1 pts
0 pts
Full Marks
No Marks
1 pts
0 pts
Full Marks
No Marks
2 pts
0 pts
Pts 1 pts
1 pts
1 pts
2 pts Total Points: 5