CSCI 340


Database Design

3 Cr. (Hrs.:2 Lec., 2 Lab)

Studies concepts and applications in database management including the relational model, relational algebra, Structural Query Language (SQL), normalization, transactions, and how to avoid SQL-injection. XML, No SQL and Big Data are introduced. Information stewardship is discussed. Students get a chance to prototype a database application working in groups. Prerequisite: CSCI 136 or CSCI 124 or (CSCI 112 and CSCI 117). (2nd)

Expectations:

E1. Students are proficient in a programming language and have learned basic error-handling, testing and debugging techniques. (CSCI 136 or CSCI 310 or CSCI 112 and CSCI 117)

E2. Students are proficient at writing and can employ APA citation standards. (WRIT 121 or equivalent)

Course Outcomes:

R1. Students will be aware of issues relating to information privacy including consequences of data retention policies, information integrity, and understand the concept of information stewardship. (CS: 4; SE: 4)

R2. Students will understand the purpose of data modeling and are able to model the logical data in a database. (CS: 1, 2, 6; SE: 2)

R3. Students will understand the relational model, its significance, can create a relational schema that incorporates entity integrity, and referential integrity constraints, and have been introduced to relational algebra. (CS: 1, 2, 6; SE: 2)

R4. Students will be able to perform Boyce-Codd Normal Form (BCNF) data normalization. (CS: 1, 2, 6; SE: 2)

R5. Students will write basic Structured Query Language (SQL) DDL and DML statements. (CS: 2; SE 2)

R6. Students will understand the purpose and concepts of transactions. (CS: 2, 6; SE: 2)

R7. Students will understand what code injection is, its dangers, and ways to write SQL statements to avoid code injection. (SE: 4)

R8. Students will have been introduced to XML, No SQL and Big Data. (CS: 2; SE: 2)

R9. Students will have a basic grasp of the system development life cycle as related to database development. (CS: 2, 6; SE: 2)

R10. Students will be familiar with at least one database management product. (CS: 2, 6; SE: 2)

R11. Students will work in teams to develop a database application for an external client. (CS: 5; SE: 5)

CS:
5-a-1 - Substantial coverage of algorithms and complexity, computer science theory, concepts of programming languages, and software development
5-a-2 - Substantial coverage of at least one general-purpose programming language
5-a-3 - Exposure to computer architecture and organization, information management, networking and communication, operating systems, and parallel and distributed

SE:
III-1-2-1 - Computing fundamentals, software design and construction, requirements analysis, security, verification, and validation
III-1-2-2 - Software engineering processes and tools appropriate for the development of complex software systems