The minor is a cohesive set of courses that elevates students from a foundational level to advanced knowledge of database systems and the database development process. Students learn the basics of data modeling, the relational model, normalization, and Structured Query Language (SQL). Students also learn the skills needed to effectively capture requirements, compose data models that accurately reflect those requirements, develop programs that establish lines of communication with back-end databases, build and manage large databases, and learn methods for designing and developing data warehouses.
In this course, students will build applications that interact with databases. Through programming exercises, students will work with multiple databases and programmatically invoke the advanced database processing operations that are integral to contemporary computing applications. Topics include the database drivers, the data layer, connectivity operations, security and integrity, and controlling database access. (Prerequisites: ISTE-230 or CSCI-320 or equivalent course.) Lec/Lab 3 (Fall, Spring).
Information Requirements Modeling
Students will survey and apply contemporary techniques used in analyzing and modeling information requirements. Requirements will be elicited in a variety of domains and abstracted at conceptual, logical, and physical levels of detail. Process, data, and state modeling will be applied in projects that follow a systems development lifecycle. Object-oriented modeling will be explored and contrasted with data and process oriented modeling. Individual and team modeling assignments will be required. (Prerequisites: ISTE-230 or CSCI-320 or equivalent course.) Lecture 3 (Fall, Spring).
Database Management and Access
Students will be introduced to issues in client/server database implementation and administration. Students will configure, test, and establish client-server communication and server-server communication with single and multiple database servers. Topics such as schema implementation, storage allocation and management, user creation and access security, backup and recovery, and performance measurement and enhancement will be presented in lecture and experienced in a laboratory environment. Students will configure and demonstrate successful communication between a database file server and multiple clients. (Prerequisite: ISTE-230 or equivalent course.) Lec/Lab 3 (Spring).
Plus one of the following:
Principles of Data Management
This course provides a broad introduction to the principles and practice of modern data management, with an emphasis on the relational database model. Topics in relational database systems include data modeling; the relational model; relational algebra; Structured Query Language (SQL); and data quality, transactions, integrity and security. Students will also learn approaches to building relational database application programs. Additional topics include object-oriented and object-relational databases; semi-structured databases (such as XML); and information retrieval. A database project is required. (Prerequisites: (MATH-190 or MATH-200 or 1016-366) and (CSCI-142 or 4003-242 or 4003-334) or equivalent courses.) Lecture 3 (Fall, Spring, Summer).
Introduction to Database and Data Modeling*
A presentation of the fundamental concepts and theories used in organizing and structuring data. Coverage includes the data modeling process, basic relational model, normalization theory, relational algebra, and mapping a data model into a database schema. Structured Query Language is used to illustrate the translation of a data model to physical data organization. Modeling and programming assignments will be required. Note: students should have one course in object-oriented programming. (Prerequisites: ISTE-120 or ISTE-200 or IGME-101 or IGME-105 or CSCI-140 or CSCI-142 or NACA-161 or NMAD-180 or equivalent course.) Lec/Lab 3 (Fall, Spring).
Plus one of the following:
Database Application Development
Database applications have aspects that need to be considered when designing and developing larger-scale systems. In this course students will explore topics such as concurrent processing, scalability, performance, and security within the context of developing larger-scale data/base information processing systems. Programming projects are required. (Prerequisites: ISTE-330 or equivalent course.) Lec/Lab 3 (Fall, Spring).
This course covers the purpose, scope, capabilities, and processes used in data warehousing technologies for the management and analysis of data. Students will be introduced to the theory of data warehousing, dimensional data modeling, the extract/transform/load process, warehouse implementation, and summary-data management. The basics of data mining and importance of data security will also be discussed. Hands-on exercises include implementing a small-scale data warehouse. (Prerequisites: ISTE-230 or CSCI-320 or equivalent course and 3rd year standing.) Lec/Lab 3 (Fall).
This course will introduce the topic of contemporary databases by covering the design, application and use of non-relational (NoSQL) database technologies. Topics include an overview of data types, structuring and processing data and knowledge, data transformation, and data storage and warehousing. Students will learn the interaction between relational and non-relational databases in the Cloud or other storage media. Programming assignments will be required. (Prerequisites: (ISTE-230 or CSCI-320) and ISTE-240 or IGME-330) or equivalent courses.) Lec/Lab 3 (Spring).
* Introduction of Database and Data Modeling (ISTE-230) will be waived with completion of Principles of Data Management (CSCI-320).