Relational Database Overview
Notes:
**The Relational Model **: - The central data description construct in this model is a relation, which can be thought of as a set of records, relation = Records - A description of data in terms of a data model is called a schema. Every relation has a schema. Ex, Students(sid: string, name:string) - integrity constraints: conditions that the records in a relation must. satisfy - Each relation has a collection of tuples(rows) - the schema for a relation specifies its name, the name of each field(or attribute or column)
DBMS: - Software designed to assist in maintaining and utilizing large collections of data
Entity-Relationship(ER) Model:(Describe objects and their relationships) - Entities: d
- Relationships
- Constraints
create Postgresql:
initdb ~/postgres --create a folder call postgres used to store db data
postgres -D ~/postgres -- start postgres database
ctril+X+C -- terminated the database connection 
creatuser -s postgres --create user
kill $(ps aux| grep postgres-- will return a processs id where include postgres) -- kill the service it wi
SQL:
CREATE TABLE Table_name(attr_1_name attr_1_type attr_1_constraint,...)
check (condition): specify an expression which new or updated rows must satisfy for an insert or update operation to succeed
Not Null, Null: the column is not allowed/allowed to contain null values
Deafult: default_expression : Assign a default data value for the column
Unique 
Basic Attribute type:
	- BooleanType - boolean
	- Character Types -char(n)--fixed length, varchar(n)--varying length characters, text --varying length characters without limit
	- Numeric Types - integer, serial -- autoincrementing interger, real
	- Data'Time Types -timestamp --date+ time, date,time, interval
Define Table:
CRUD Operations:
- Create : Define a new table(Create)
- Integrity Constraint(IC): A condition specified on a database schema and restricts the data that can be stored in the database
 - Unique Key: A minimal subset of the columns that uniquely identify a tuple. note: A unique key can be null
 - Primary Keys: A minimal subset of the columns that uniquely identify a tuple. note: A primary key shouldn’t be null
 - Foreign Keys:
◦ The information stored in a relation linked to the information stored in another relation. If one of the relations is  modified, the other must be checked/modified to keep the data consistent. The foreign key in the referencing relation must match  the primary key of the referenced relationship. Column names can be different.
◦ Needs to reject or update when referenced information changes.
◦ CASCADE : When a referenced row is deleted/updated, row(s) referencing it should be automatically deleted/updated as well.
◦ NO ACTION (Default) : If any referencing rows still exist when the constraint is checked, an error is raised.
◦ RESTRICT prevents deletion of a referenced row.
◦ SET NULL / SET DEFAULT : When a referenced row is deleted/updated, referencing column becomes Null/a default value. 
Foregin Key (id), references custoemr(id), on delete cascade on update cascade 
---
### Create/Insert : 
Define a new table (CREATE), Insert a tuple (INSERT) into a  
table Syntax :  
	
```INSERT INTO table_name(attr_1_name, attr_2_name, ..., attr_n_name)  
VALUES (value_1, value_2, ..., value_n), (value_1’, value_2’, ...,  
value_n’);  
◦ Can omit the list of column names in the INTO clause.
Bulk data loading from a file:
- Syntax:
 
FROM ‘file_path'  
DELIMITER ‘delimieter_character’  
[CSV HEADER];  
SQL Data type conversion
TO_CHAR(numeric_type, format_string)
9:numeric value
G:group seperater
D: decimal point
S: sign
To_number(text, format_string)
SQL Function
From, where, select, distinct, order by , limit
final exam
- window function
 - functions
 - CTE
 - transactions
- Atomicity(ex: delete, insert statement fail will fail everything, or update everything):
- Actions in transactions are carried out all or non
 
 - Consistency(ex : database will only delete, insert in allowed ways):
- A transcation must change affected data only in allowed ways
 
 - Isolation(because many operation can happen at the same time, isolation allow us to not to worry about when other is doing the transaction  )
- Concurrency and isolation( if transaction and select statement happen at the same time, we would isolate the select statement, else, the select statement would output the update data )
 - Conflicts and Lock
 
 - Durability
 
 - Atomicity(ex: delete, insert statement fail will fail everything, or update everything):
 - normal
 - ACID
 
NF:
- issue of un normalized tables: - 1NF(primary key ): - 2NF(unique define) - 3NF(no tranparency )