List of commits:
Subject Hash Author Date (UTC)
Fixed the size of the images, added mention of the support of Affordable Learning Georgia. 485cf486d8d2b08427e5d02eda56d5b7a9495b38 aubert@math.cnrs.fr 2019-03-05 19:37:39
Finishing homework #5. e322bc945941083b0649557d9ad6bdbb8308c10c aubert@math.cnrs.fr 2019-03-04 15:10:15
Preparing homework 5 2b9ba64d1d36ae9f413929947cac5e6cddceb3dc aubert@math.cnrs.fr 2019-03-01 20:06:12
Some fixes and added quiz #3. d73c356f1bec9679f7123bc508c1863f8de40aef aubert@math.cnrs.fr 2019-02-28 20:34:04
Working on solutions for problems in Chapter 3. 0da378f97cea97fa2b3614f1b611a3b5bdf42632 aubert@math.cnrs.fr 2019-02-26 19:56:23
Forgot one exercise in exam. 611bbe4cc68f802bfffd7bdfc70c3433a70eceb5 aubert@math.cnrs.fr 2019-02-22 20:39:07
Quick fix c22751b88c377a40dd2c037a706409aa29ef3ce2 aubert@math.cnrs.fr 2019-02-22 20:37:21
Various editing, fixing some of the solutions in Chapter 3 and some of the exercises in Chapter 4. 1e1d8dd576329b20aa3b7f9344aaecb9d11fc6f4 aubert@math.cnrs.fr 2019-02-22 20:22:09
Added the rest of the first exam for Fall 2019. 0d5a839282b1ae6e6c07e7b12a74ff2f0f2f3b86 aubert@math.cnrs.fr 2019-02-22 20:03:02
Adding a problem and its solution, in the SQL chapter. d5bfcbb949a6acac68156a8b37d6f8d23375b1cb aubert@math.cnrs.fr 2019-02-19 19:53:27
Adding second quiz, and fixing some exercises and problems in Chapter 3. 062c9b46fad52848efbf61e08c91103c0bae4127 aubert@math.cnrs.fr 2019-02-06 20:04:16
Clarification on SQL constraints. 70e26a02aa344cc1bf009a089623be6baac79ba7 aubert@math.cnrs.fr 2019-01-29 22:46:26
Adding some minor SQL remarks + code for HW_FACULTY. 1d1b74302d29fb63c3c2bacca30533283f720997 aubert@math.cnrs.fr 2019-01-25 17:24:16
fixing small typo. 0feeb8df61e05d6d0990120628303cf31108f100 aubert@math.cnrs.fr 2019-01-22 18:23:34
Quick fix + adding macOS install instructions. ea3063e4e9225c8ce66838c8bfddb9a34aadacf8 aubert@math.cnrs.fr 2019-01-16 15:59:38
Fixing a few typos and adding a drawing. b335800d4129c8e29763a6c1d564243d485fa51b aubert@math.cnrs.fr 2019-01-15 19:03:38
Fixing first homework 3eeb05a78235274a330c780f4f26b5fed1a01aef aubert@math.cnrs.fr 2019-01-08 19:50:29
Added content of various exam, fixed intro, added references, solutions, fixed types. a8e9d2d4856133d68d882403cde42dfcc2f5cc69 aubert@math.cnrs.fr 2019-01-07 16:47:02
Cleaning files and makefile 7605a6530505ad69042413dd995d77f1814c2f30 au 2018-12-24 14:25:31
Fixed margin for PDF, added a couple of SVG images, fixed some problems, added some code. eb83d9f07d738df7ab2515b768d6165a3b7e5ca3 au 2018-12-24 02:28:36
Commit 485cf486d8d2b08427e5d02eda56d5b7a9495b38 - Fixed the size of the images, added mention of the support of Affordable Learning Georgia.
Author: aubert@math.cnrs.fr
Author date (UTC): 2019-03-05 19:37
Committer name: aubert@math.cnrs.fr
Committer date (UTC): 2019-03-05 19:37
Parent(s): e322bc945941083b0649557d9ad6bdbb8308c10c
Signing key:
Tree: f171dc7553a71b14596109de2627ec2412e94964
File Lines added Lines deleted
notes/lectures_notes.md 22 19
File notes/lectures_notes.md changed (mode: 100644) (index f6f8360..d10750d)
... ... The u͟n͟d͟e͟r͟l͟i͟n͟e͟ text is obtained from <https://yaytext.com/under
145 145
146 146 To clone and compile this document, refer to the `README.md` file, at <https://rocketgit.com/user/caubert/CSCI_3410/source/tree/branch/master/blob/README.md> or <http://spots.augusta.edu/caubert/db/ln/README.html>. To clone and compile this document, refer to the `README.md` file, at <https://rocketgit.com/user/caubert/CSCI_3410/source/tree/branch/master/blob/README.md> or <http://spots.augusta.edu/caubert/db/ln/README.html>.
147 147
148 Those lecture notes were created under an [Affordable Learning Georgia](https://www.affordablelearninggeorgia.org/) [Mini-Grant for Ancillary Materials Creation and Revision](https://www.affordablelearninggeorgia.org/about/r13_grantees) ([Proposal M71](https://www.affordablelearninggeorgia.org/about/r13_grantees)).
149
150 ![Affordable Learning Georgia](img/ALG_Logo_hires.png){width=70%}\
151
148 152 ## Various Resources {-} ## Various Resources {-}
149 153
150 154 On top of the [references](references) and of the "resources" listed at the beginning of each chapter, I consulted while writing those notes: On top of the [references](references) and of the "resources" listed at the beginning of each chapter, I consulted while writing those notes:
 
... ... The focus will be on design, but we will have to do a little bit of everything.
222 226
223 227 ## Design ## Design
224 228
225 ![The cycle of design](img/cycle_of_design.jpeg){#fig:cycle}
229 ![The cycle of design](img/cycle_of_design.jpeg){#fig:cycle width=90%}
226 230
227 231 Refer to the ["The cycle of design" figure](#fig:cycle). Refer to the ["The cycle of design" figure](#fig:cycle).
228 232
 
... ... The following links could be useful:
1958 1962 #. Save the "mysql-installer-web-community-XXX.msi" file, and open it. If there is an updated version of the installer available, agree to download it. Accept the license term. #. Save the "mysql-installer-web-community-XXX.msi" file, and open it. If there is an updated version of the installer available, agree to download it. Accept the license term.
1959 1963 #. We will now install the various components needed for this class, leaving all the choices by defaults. This means that you need to do the following: #. We will now install the various components needed for this class, leaving all the choices by defaults. This means that you need to do the following:
1960 1964 #. Leave the first option on "Developer Default" and click on "Next", or click on "Custom", and select the following: #. Leave the first option on "Developer Default" and click on "Next", or click on "Custom", and select the following:
1961 ![](img/mysql_install.png)
1965 ![](img/mysql_install.png){width=90%}
1962 1966 #. Click on "Next" even if you don't meet all the requirements #. Click on "Next" even if you don't meet all the requirements
1963 1967 #. Click on "Execute". The system will download and install several softwares (this may take some time). #. Click on "Execute". The system will download and install several softwares (this may take some time).
1964 1968 #. Click on "Next" twice, leave "Type and Networking" on "Standalone MySQL Server / Classic MySQL Replication" and click "Next", and leave the next options as they are (unless you know what you do and want to change the port, for instance) and click on "Next". #. Click on "Next" twice, leave "Type and Networking" on "Standalone MySQL Server / Classic MySQL Replication" and click "Next", and leave the next options as they are (unless you know what you do and want to change the port, for instance) and click on "Next".
 
... ... We are dealing with moving aspects here: atributes on $1:1$, $1:N$, $N:1$ relati
3821 3825
3822 3826 To determine cardinality ratio: fix all but one, wonder how many can be in that relationship. To determine cardinality ratio: fix all but one, wonder how many can be in that relationship.
3823 3827
3824 ![](img/N_ary_relationship.jpeg)
3828 ![](img/N_ary_relationship.jpeg){width=90%}
3825 3829
3826 ![](img/N_ary_relationship02.jpeg)
3830 ![](img/N_ary_relationship02.jpeg){width=90%}
3827 3831
3828 3832 *Need to find a good $3$-ary example* *Need to find a good $3$-ary example*
3829 3833
 
... ... Two sorts of entity types:
3842 3846 Weak (child) entity types are identified by **identifying / owner** type that is related to it, in conjunction with one attribute (**the partial key**). Weak (child) entity types are identified by **identifying / owner** type that is related to it, in conjunction with one attribute (**the partial key**).
3843 3847 Relation is called identifiying relationship, and weak entities have a total participation constraint. Relation is called identifiying relationship, and weak entities have a total participation constraint.
3844 3848
3845 ![](img/Weak_Entity.jpeg)
3849 ![](img/Weak_Entity.jpeg){width=90%}
3846 3850
3847 3851 Choice between two representation: if pet is involved in other relationships! Choice between two representation: if pet is involved in other relationships!
3848 3852
 
... ... Choice between two representation: if pet is involved in other relationships!
3854 3858
3855 3859 #### Notation With Explicit Maximal #### Notation With Explicit Maximal
3856 3860
3857 ![](img/Entity_Alt_notation01.jpeg)
3861 ![](img/Entity_Alt_notation01.jpeg){width=90%}
3858 3862
3859 ![](img/Entity_Alt_notation02.jpeg)
3863 ![](img/Entity_Alt_notation02.jpeg){width=90%}
3860 3864
3861 3865 #### Crow's foot notation {#sec:Crow_foot} #### Crow's foot notation {#sec:Crow_foot}
3862 3866
3863 ![](img/ERD-Notation.PNG)
3867 ![](img/ERD-Notation.PNG){width=90%}
3864 3868
3865 3869 <https://www.lucidchart.com/pages/ER-diagram-symbols-and-meaning> <https://www.lucidchart.com/pages/ER-diagram-symbols-and-meaning>
3866 3870
3867 ![](img/ERD-artist-performs-song.svg)
3871 ![](img/ERD-artist-performs-song.svg){width=90%}
3868 3872
3869 3873 <https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model#Crow%27s_foot_notation> <https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model#Crow%27s_foot_notation>
3870 3874
 
... ... Won't be able to represent it, because of https://stackoverflow.com/a/21260267/2
3896 3900
3897 3901 From relational models to E.R. models (sometimes needed) From relational models to E.R. models (sometimes needed)
3898 3902
3899 ![](img/Reverse_Eng1.jpeg)
3900
3901 ![](img/Reverse_Eng3.jpeg)
3903 ![](img/Reverse_Eng1.jpeg){width=90%}
3902 3904
3905 ![](img/Reverse_Eng3.jpeg){width=90%}
3903 3906
3904 3907 --- ---
3905 3908
 
... ... Using four tools: Relations, Attributes, Primary Keys, Foreign Keys.
3936 3939
3937 3940 **Bug: + Propagate option? Cascade, most of the time: weak entity type, lookup tables, etc.** **Bug: + Propagate option? Cascade, most of the time: weak entity type, lookup tables, etc.**
3938 3941
3939 ![](img/ER_To_Rel1.jpeg)
3942 ![](img/ER_To_Rel1.jpeg){width=90%}
3940 3943
3941 3944
3942 3945 ### Outro ### Outro
 
... ... Wide, powerful, but also intimidating.
4253 4256
4254 4257 You know UML from object-oriented programming language: You know UML from object-oriented programming language:
4255 4258
4256 ![](img/Class_diag.png)
4259 ![](img/Class_diag.png){width=90%}
4257 4260
4258 4261 That's a class diagram, there are other types of diagrams, they are not unrelated! That's a class diagram, there are other types of diagrams, they are not unrelated!
4259 4262 For instance, using communication diagrams, deployment diagrams, and state chart diagrams, you can collect the requirements needed to draw a class diagram! For instance, using communication diagrams, deployment diagrams, and state chart diagrams, you can collect the requirements needed to draw a class diagram!
 
... ... Exercise +.#
4412 4415 <!-- Bug with table --> <!-- Bug with table -->
4413 4416 Entity 1 | Cardinality Ratio | Entity 2 | Entity 1 | Cardinality Ratio | Entity 2 |
4414 4417 | --- | :---: | --- | | --- | :---: | --- |
4415 STUDENT | \ | MAJOR
4416 CAR | \ | TAG
4417 INSTRUCTOR | \ | LECTURE
4418 INSTRUCTOR | \ | OFFICE
4419 COMPUTER | \ | OPERATING\_SYSTEM
4418 STUDENT | : | MAJOR
4419 CAR | : | TAG
4420 INSTRUCTOR | : | LECTURE
4421 INSTRUCTOR | : | OFFICE
4422 COMPUTER | : | OPERATING\_SYSTEM
4420 4423
4421 4424 Exercise +.# Exercise +.#
4422 4425
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