The concepts you will learn in this class include aspects of database design, database languages, and database-system implementation. The course textbook is Database Systems Concepts, Seventh Edition by Silberschatz, Korth, and Sudarshan. ISBN: 9780078022159. Lectures are held on Mondays and Wednesdays from 3:00 pm to 4:20 pm virtually via Zoom unless otherwise specified. Optional in-person seminars are held on Friday at the same time. Please stop on by!
All weekly written and coding assignments should be turned in via Gradescope. All assignments will be released by 11:59 PM on the day listed. All assignments are due at 11:59 pm ET on the day listed. They will be graded and returned with solutions for the problems. Written assignments should be submitted as PDFs.
Each student gets 5 late days during the semester, in that they are not penalized for them. You may not use more than 2 late days on a single assignment. At the end of the semester, we will optimally distribute the late days over your projects. A late day used on either the written or code portion of an assignment counts as a late day for the assignment as a whole. After your five late days, we will take off 25% per late day, distributed optimally.
Since projects in CSCI 1270 build atop one another, we recognize that if a student falls behind, later projects will be impossible. If you require solution code to continue in the course, please fill out the form linked here to request it. You will only receive solution code two days after the due date of the relevant project due date(s) at the earliest. Most importantly, note that distributing or making available solution code in any way, knowingly or unknowingly, is a violation of the Academic Code. This includes sharing code with a peer in the class, even if they have also filled out the request form. For the most up-to-date information on solution code requests, please see our Missive.
Lectures are held on Mondays and Wednesdays from 3:00 pm to 4:20 pm virtually via Zoom unless otherwise specified. Lecture slides and recordings will be posted soon after lecture ends. You are highly encouraged to attend all lectures.
To spread our love of databases and to expose you to cutting edge database concepts, the CSCI 1270 TAs run seminars on Fridays from 3:00 pm to 4:00 pm, in-person in CIT Lubrano (477). Recordings will be posted soon after the seminar ends. You are highly encouraged to attend any seminars that interest you!
Hi, I'm Connor! I am in my third year as a Ph.D. student, mentored by Dr. Cetintemel. I love to think about how we can help others navigate GDPR/CCPA compliance. I am an avid drummer and a Private Pilot.
Hi! I'm an international CS grad student from India. I can speak 4 languages. In my spare time you can find me eating/cooking good food, listening to podcasts or sleeping (basically I'm the human form of a Panda).
I use he/him pronouns, and I am from New Jersey. For fun I like playing basketball, videogames, skateboarding, and gardening. My interests with computer science are machine learning and data engineering.
In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and analyze the data. The DBMS additionally encompasses the core facilities provided to administer the database. The sum total of the database, the DBMS and the associated applications can be referred to as a database system. Often the term "database" is also used loosely to refer to any of the DBMS, the database system or an application associated with the database.
Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases spans formal techniques and practical considerations, including data modeling, efficient data representation and storage, query languages, security and privacy of sensitive data, and distributed computing issues, including supporting concurrent access and fault tolerance.
Computer scientists may classify database management systems according to the database models that they support. Relational databases became dominant in the 1980s. These model data as rows and columns in a series of tables, and the vast majority use SQL for writing and querying data. In the 2000s, non-relational databases became popular, collectively referred to as NoSQL, because they use different query languages.
Formally, a "database" refers to a set of related data accessed through the use of a "database management system" (DBMS), which is an integrated set of computer software that allows users to interact with one or more databases and provides access to all of the data contained in the database (although restrictions may exist that limit access to particular data). The DBMS provides various functions that allow entry, storage and retrieval of large quantities of information and provides ways to manage how that information is organized.
Outside the world of professional information technology, the term database is often used to refer to any collection of related data (such as a spreadsheet or a card index) as size and usage requirements typically necessitate use of a database management system.[1]
Physically, database servers are dedicated computers that hold the actual databases and run only the DBMS and related software. Database servers are usually multiprocessor computers, with generous memory and RAID disk arrays used for stable storage. Hardware database accelerators, connected to one or more servers via a high-speed channel, are also used in large-volume transaction processing environments. DBMSs are found at the heart of most database applications. DBMSs may be built around a custom multitasking kernel with built-in networking support, but modern DBMSs typically rely on a standard operating system to provide these functions.[citation needed]
Databases and DBMSs can be categorized according to the database model(s) that they support (such as relational or XML), the type(s) of computer they run on (from a server cluster to a mobile phone), the query language(s) used to access the database (such as SQL or XQuery), and their internal engineering, which affects performance, scalability, resilience, and security.
The sizes, capabilities, and performance of databases and their respective DBMSs have grown in orders of magnitude. These performance increases were enabled by the technology progress in the areas of processors, computer memory, computer storage, and computer networks. The concept of a database was made possible by the emergence of direct access storage media such as magnetic disks, which became widely available in the mid-1960s; earlier systems relied on sequential storage of data on magnetic tape. The subsequent development of database technology can be divided into three eras based on data model or structure: navigational,[8] SQL/relational, and post-relational.
The two main early navigational data models were the hierarchical model and the CODASYL model (network model). These were characterized by the use of pointers (often physical disk addresses) to follow relationships from one record to another.
The relational model, first proposed in 1970 by Edgar F. Codd, departed from this tradition by insisting that applications should search for data by content, rather than by following links. The relational model employs sets of ledger-style tables, each used for a different type of entity. Only in the mid-1980s did computing hardware become powerful enough to allow the wide deployment of relational systems (DBMSs plus applications). By the early 1990s, however, relational systems dominated in all large-scale data processing applications, and as of 2018[update] they remain dominant: IBM Db2, Oracle, MySQL, and Microsoft SQL Server are the most searched DBMS.[9] The dominant database language, standardized SQL for the relational model, has influenced database languages for other data models.[citation needed]
The introduction of the term database coincided with the availability of direct-access storage (disks and drums) from the mid-1960s onwards. The term represented a contrast with the tape-based systems of the past, allowing shared interactive use rather than daily batch processing. The Oxford English Dictionary cites a 1962 report by the System Development Corporation of California as the first to use the term "data-base" in a specific technical sense.[10]
As computers grew in speed and capability, a number of general-purpose database systems emerged; by the mid-1960s a number of such systems had come into commercial use. Interest in a standard began to grow, and Charles Bachman, author of one such product, the Integrated Data Store (IDS), founded the Database Task Group within CODASYL, the group responsible for the creation and standardization of COBOL. In 1971, the Database Task Group delivered their standard, which generally became known as the CODASYL approach, and soon a number of commercial products based on this approach entered the market.
Later systems added B-trees to provide alternate access paths. Many CODASYL databases also added a declarative query language for end users (as distinct from the navigational API). However, CODASYL databases were complex and required significant training and effort to produce useful applications.
IBM also had its own DBMS in 1966, known as Information Management System (IMS). IMS was a development of software written for the Apollo program on the System/360. IMS was generally similar in concept to CODASYL, but used a strict hierarchy for its model of data navigation instead of CODASYL's network model. Both concepts later became known as navigational databases due to the way data was accessed: the term was popularized by Bachman's 1973 Turing Award presentation The Programmer as Navigator. IMS is classified by IBM as a hierarchical database. IDMS and Cincom Systems' TOTAL[broken anchor] databases are classified as network databases. IMS remains in use as of 2014[update].[11]
b1e95dc632