ketchup on stuff from before break
This commit is contained in:
parent
7aa384c7f4
commit
78533cca9e
32
cst363/lec/lec20.md
Normal file
32
cst363/lec/lec20.md
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
# lec20
|
||||||
|
|
||||||
|
_more on mapping cardinalities_
|
||||||
|
|
||||||
|
## Pariticipation Constraints
|
||||||
|
|
||||||
|
These are _perscriptive_ constraints.
|
||||||
|
|
||||||
|
* total
|
||||||
|
|
||||||
|
If _all_ the entities in a set participate we say that the participation is total for that set.
|
||||||
|
|
||||||
|
* partial
|
||||||
|
|
||||||
|
If even one entity in the set is not participating then the pariticpation is _partial_ for that set.
|
||||||
|
|
||||||
|
## Entity Keys
|
||||||
|
|
||||||
|
If we have a table for a relationship, we can identify all the relationships if we can uniquely identify enties from either given set.
|
||||||
|
Essentially if we can identify both(all) pariticipants in a given relationship table we can find any relationship in our relation-set.
|
||||||
|
|
||||||
|
## Weak Entity Sets
|
||||||
|
|
||||||
|
Any set where we can not uniquely all entities in that set.
|
||||||
|
Let's say we have a tournament.
|
||||||
|
|
||||||
|
We'll have players, with some _name_ and _jersey number_.
|
||||||
|
We also have teams with a _team-name_ and likely some _team-id_.
|
||||||
|
|
||||||
|
This means our players entity set is a weak set, but, because _all_ players participate in a team by definition of what a player is.
|
||||||
|
Furthermore we may use the relationship between teams and players to idetify players.
|
||||||
|
|
56
cst363/lec/lec21.md
Normal file
56
cst363/lec/lec21.md
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
# lec21
|
||||||
|
|
||||||
|
## Strong & Weak Entity sets
|
||||||
|
|
||||||
|
Strong: has a primary key in the set
|
||||||
|
|
||||||
|
Weak: opposite of strong
|
||||||
|
|
||||||
|
## Diagram things
|
||||||
|
|
||||||
|
_pretty formatting on diagrams means stuff_
|
||||||
|
|
||||||
|
* Arrows
|
||||||
|
|
||||||
|
* solid lines
|
||||||
|
* many
|
||||||
|
* contributer [solid] contribution [solid] candidate
|
||||||
|
|
||||||
|
* dotted lines
|
||||||
|
* only one
|
||||||
|
|
||||||
|
Say we have solid/arrow
|
||||||
|
|
||||||
|
```
|
||||||
|
student{id/name} --- [advisor] --> instructor{id/name}
|
||||||
|
```
|
||||||
|
Students can have at most 1 advisor \
|
||||||
|
Instructor's can advise multiple students
|
||||||
|
|
||||||
|
If we want to have some kind of advisor table we can identify each relationship with _just_ the student-id.
|
||||||
|
We can do this because each student will only every 0,1 instructor's in an adivsory relationship
|
||||||
|
|
||||||
|
## Composite Structures
|
||||||
|
|
||||||
|
Logically compositing makes sense but sql doesn't like much aside from primitives so we can't really do that
|
||||||
|
|
||||||
|
Say then we have:
|
||||||
|
```
|
||||||
|
contributor:
|
||||||
|
id
|
||||||
|
name
|
||||||
|
address <-- f to pay respects
|
||||||
|
city
|
||||||
|
state
|
||||||
|
zip
|
||||||
|
```
|
||||||
|
|
||||||
|
We just drop the address part if we wanted to convert this to something in sql.
|
||||||
|
Reasoning here is case by case likewise need-to-know basis: ergo stick to da plan.
|
||||||
|
|
||||||
|
## Normalization
|
||||||
|
|
||||||
|
Process used to imporve schemas
|
||||||
|
|
||||||
|
Basically a method of setting up rules to stop random bs from happennig.
|
||||||
|
Also we typically remove redundancy from our schemas through this process
|
34
cst363/lec/lec22.md
Normal file
34
cst363/lec/lec22.md
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# lec22
|
||||||
|
|
||||||
|
## Functional Dependancy
|
||||||
|
|
||||||
|
If we have an attribute a that could produce `b,c,d` reliably everytime then we would only need to keep track of `a` instead of keeping track of all the repeats because the dependants depend on `a`.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
```
|
||||||
|
building -> roomNumber
|
||||||
|
```
|
||||||
|
This one makes sense since we would likely be able to find duplicate room numbers in different buildings.
|
||||||
|
Most places have a name for each building however.
|
||||||
|
|
||||||
|
## BCNF
|
||||||
|
|
||||||
|
> Boyce Codd Normal Form
|
||||||
|
|
||||||
|
If we have a key which sources our redundancy we're ok because we can easily find all redundancies.
|
||||||
|
If we're not looking at a key then we could be in the middle of a dependancy nest.
|
||||||
|
|
||||||
|
Say we have a schema like `advisees(inst_id, student_id, student_name)`.
|
||||||
|
Student name depends on `student_id` so there's no reason to have it in the schema.
|
||||||
|
|
||||||
|
|
||||||
|
A schema follows BCNF if there's a non-trivial functional dependancy
|
||||||
|
|
||||||
|
* x -> y for r
|
||||||
|
* then x is a superkey for r
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
|
```
|
||||||
|
instructor_offices(inst_id, name, office)
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user