List of commits:
Subject Hash Author Date (UTC)
Clarified an example. e68bac453ab427c132b55249e21a08166b112f31 aubert@math.cnrs.fr 2020-05-15 15:06:54
Edits in style. 47578b081f74e9ec706772fa70a3079957129542 aubert@math.cnrs.fr 2020-05-15 14:38:16
Added activity diagram. 11c9acfa88c398f7463d6e54f45ea48c8793caf1 aubert@math.cnrs.fr 2020-05-15 14:34:31
Added activity diagram. 995cf4f64c43601716f77bb46d1535025ea14d10 aubert@math.cnrs.fr 2020-05-15 14:33:30
Edits in intro, converted an image to a figure for example of class diagram. 1ff4ef2f7f44ece81972a6c77e9f6654c144fcdc aubert@math.cnrs.fr 2020-05-14 22:12:38
Adding example file, to test installation. 5ed35e64a4e4dc60c888358bde54594999aab34d aubert@math.cnrs.fr 2020-05-13 19:03:41
Minor adjustments to the syllabus. dca6f12d9d3d561755991029f2d53bf9823a8cea aubert@math.cnrs.fr 2020-05-13 19:02:41
Worked on reverse-engineering section. 34aeba178fe553c08b4fb3738523be293704e09d aubert@math.cnrs.fr 2020-05-13 18:52:09
Cleaning images. ac02dcf8ffbbbd24139491e5d1e349ace782401e aubert@math.cnrs.fr 2020-05-13 17:40:43
Started to spell-check… 799dc31237aa41176687f37306ca4092a7760f89 aubert@math.cnrs.fr 2020-05-13 17:17:06
Added foldable toc to readme and co. 07854a4e108c91c55a40fbd10ed84336b885b93f aubert@math.cnrs.fr 2020-05-13 16:51:17
Added final exam. fb37cf99312795016ddbc2e859b055051bcedd13 aubert@math.cnrs.fr 2020-05-08 21:11:57
Refined ccs style + added foldable toc. 95b1663a7b8294dd401d796fb545a67bddba0a01 aubert@math.cnrs.fr 2020-05-07 19:02:27
Refined ccs style + added foldable toc. c208eee4f769e99415efa57a7f03081db87ec3db aubert@math.cnrs.fr 2020-05-07 18:02:53
Fixing indent in xml and notes. ace8f38f8e0374005d143ebaa32d47a209fb5a48 aubert@math.cnrs.fr 2020-04-27 18:42:28
NoSQL application detailled. f2030de09eb58462e04935ec83c71d3c1fc72469 aubert@math.cnrs.fr 2020-04-27 18:28:02
Added automatic anchors. 2ddb93394121bcf95f91bfed8b447966925afa6f aubert@math.cnrs.fr 2020-04-27 05:35:14
added missing file 480b503949518eb51fd324a6f6bbb8f6d5643f0d aubert@math.cnrs.fr 2020-04-24 02:11:09
Worked on MongoDB section. 70f041d53a14bbb5ace0a4ef40f3e67eca285309 aubert@math.cnrs.fr 2020-04-22 19:18:55
Edited KNOWN_BUGS. b90ca71b498016b17963373ead24873781181bfd aubert@math.cnrs.fr 2020-04-22 05:12:14
Commit e68bac453ab427c132b55249e21a08166b112f31 - Clarified an example.
Author: aubert@math.cnrs.fr
Author date (UTC): 2020-05-15 15:06
Committer name: aubert@math.cnrs.fr
Committer date (UTC): 2020-05-15 15:06
Parent(s): 47578b081f74e9ec706772fa70a3079957129542
Signer:
Signing key:
Signing status: N
Tree: 8f8383b2b32992a044f950f0cdde96d66c4f884c
File Lines added Lines deleted
notes/lectures_notes.md 6 4
File notes/lectures_notes.md changed (mode: 100644) (index 646fd11..2cfccc6)
... ... DRIVER(State (PK), Licence\_number (PK), Name, Address)
868 868 INSURANCE(Policy\_Number (PK), Insured\_Car (FK to CAR.VIN), Insured\_Driver\_State (FK to DRIVER.State), Insured\_Driver\_Num (FK to DRIVER.Licence\_number), Rate) INSURANCE(Policy\_Number (PK), Insured\_Car (FK to CAR.VIN), Insured\_Driver\_State (FK to DRIVER.State), Insured\_Driver\_Num (FK to DRIVER.Licence\_number), Rate)
869 869 PRICE(Stock\_number (PK), Car\_Vin (FK to CAR.VIN), Price, Margin) PRICE(Stock\_number (PK), Car\_Vin (FK to CAR.VIN), Price, Margin)
870 870 ](fig/rel_mod/car_01) ](fig/rel_mod/car_01)
871 \
871 \
872 872
873 (Yes, we do need the state *and* the licence number to uniquely identify a driver's licence, since [many states use the same licence format](https://ntsi.com/drivers-license-format/).
873 - In CAR, VIN is the primary key, so it must satisfy the entity integrity constraint, and its value can not be `NULL`. Note also that all the values must be different, as the same value cannot occur twice as the primary key of tuples: we don't want to enter the same VIN twice, that would mean we are registering a car that was already registered in our database!
874 - In DRIVER, State **and** Licence-num are the primary key^[Yes, we do need the state *and* the licence number to uniquely identify a driver's licence, since [many states use the same licence format](https://ntsi.com/drivers-license-format/).], so they must _together_ satisfy the intergrity constrant: neither of them can be `NULL`. Furthermore, their _pair_ must be different from all the other values. Stated differently, you can have `<GA, 1234>`, `<GA, 0000>` and `<NC, 1234>` as values for the <State, Licence-num> pair, even if they have one element in common, what is forbidden is to have _both_ element in common (i.e., you cannot have `<GA, 1234>` twice).
875 If both elements were common, that would mean that we are registering a driver that was already in the database.
876 - Insurance has a primary key, and three foreign keys. The foreign keys must satisfy the referential integrity constraint: if the value stored in Insured-Car is not `NULL` (which it could be), then it has to be a value that occurs as the VIN value of some tuple in the CAR relation. For the Insured-Driver-State and Insured-Driver-Licence-Num, the situation is similar: they must either both be `NULL`, or be values that occurs _paired together_ as the values for State and Licence-Num in a tuple in the CAR relationship. If e.g. Insured-Car was containing the VIN of a car not in the CAR relation, that would mean we are trying to insure a car that is "not known" from the database's perspective, something we certainly want to avoid.
877 - In Price, we have a primary key and a foreign key that obey similar requirements as before.
874 878
875 List all the entity integrity constraint and referential integrity constraint.
876
877 879
878 880 ## Transactions and Operations ## Transactions and Operations
879 881
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/caubert/CSCI_3410

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/caubert/CSCI_3410

Clone this repository using git:
git clone git://git.rocketgit.com/user/caubert/CSCI_3410

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main