DATABASE MANAGEMENT

5 downloads 141 Views 455KB Size Report
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