List of commits:
Subject Hash Author Date (UTC)
Adding some missing files. 0c090f6d43e84b71ca5e1f6d3e8d1aa0d733824d aubert@math.cnrs.fr 2019-03-18 18:28:32
Fixing the style for line numbers, adding information for weak entities, drawing some figures (for crow's notation, for alternative notations), removing various images. 26ce9a96701649988cfdfcb3e61011f4e154896d aubert@math.cnrs.fr 2019-03-18 18:25:09
Added solution to quiz #4. db0de8ba5c6605d77fdbc076f3a9e5b3851d83e0 aubert@math.cnrs.fr 2019-03-15 20:57:13
Added questions for Quiz #4. 30d908601e9431ec0901d4001ddbf99bf14f75d0 aubert@math.cnrs.fr 2019-03-15 17:52:24
Worked on narrative in Chapter 4, mostly ER diagrams. 9e0cc5fc5a2b4087fe1191f1ba5926f87ad5a7bd aubert@math.cnrs.fr 2019-03-12 18:57:16
Updated list of known bugs. d51ff0a5bb73f09eb8d3eb7520ebb77555911e69 aubert@math.cnrs.fr 2019-03-12 17:09:22
Updating the README with the list of new files. bb35e21746d958d649b226a5857150d975d85403 aubert@math.cnrs.fr 2019-03-07 15:20:04
Adding a list of bug, and the sketch of a guide to contribute. 3a94b1fa49aee97001a45325f3f10f09475bf388 aubert@math.cnrs.fr 2019-03-07 15:14:38
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
Commit 0c090f6d43e84b71ca5e1f6d3e8d1aa0d733824d - Adding some missing files.
Author: aubert@math.cnrs.fr
Author date (UTC): 2019-03-18 18:28
Committer name: aubert@math.cnrs.fr
Committer date (UTC): 2019-03-18 18:28
Parent(s): 26ce9a96701649988cfdfcb3e61011f4e154896d
Signing key:
Tree: da59129d369eff93bfc6e8ae7da74af909800cf2
File Lines added Lines deleted
notes/fig/er/Pet1.tex 4 2
notes/fig/er/Teaches.tex 11 0
notes/fig/misc/crow_foot.tex 196 0
notes/img/ALG_Logo_hires.png 0 0
notes/img/mysql_install.png 0 0
File notes/fig/er/Pet1.tex copied from file notes/fig/er/Pet2.tex (similarity 55%) (mode: 100644) (index f2035b6..0fe0ade)
4 4 \begin{tikzpicture}[node distance=8em] \begin{tikzpicture}[node distance=8em]
5 5 \node[entity] (FRIEND) {FRIEND}; \node[entity] (FRIEND) {FRIEND};
6 6 \node[attribute] (make) [below of=FRIEND] {\key{Name}} edge (FRIEND); \node[attribute] (make) [below of=FRIEND] {\key{Name}} edge (FRIEND);
7 \node[multi attribute] (PET) [right = 1cm of FRIEND] {PET} edge(FRIEND);
8 \node[attribute] [below right of =PET] {Name} edge (PET);
7
8 \node[ident relationship] (POSSESSES) [right of=FRIEND] {POSSESSES} edge node[above, pos=0.3] {$1$} (FRIEND);
9 \node[weak entity] (PET) [right = 1cm of POSSESSES] {PET} edge[total] node[above, pos=0.7] {$N$} (POSSESSES);
10 \node[attribute] [below right of =PET] {\pkey{Name}} edge (PET);
9 11 \node[attribute] [below left of =PET] {Gender} edge (PET); \node[attribute] [below left of =PET] {Gender} edge (PET);
10 12 \node[attribute] [below of =PET] {Specie} edge (PET); \node[attribute] [below of =PET] {Specie} edge (PET);
11 13 \end{tikzpicture} \end{tikzpicture}
File notes/fig/er/Teaches.tex added (mode: 100644) (index 0000000..e189370)
1 \documentclass[border=20pt]{standalone}
2 \input{template.def}
3
4 \begin{tikzpicture}[node distance=5em]
5 \node [entity] (PROFESSOR) {PROFESSOR};
6 \node [relationship] (TEACHES) [right=of PROFESSOR] {TEACHES} edge node[above]{$1$} (PROFESSOR);
7 \node [entity] [right = of TEACHES] {COURSE} edge node[above]{$\cN$} (TEACHES);
8 \node [entity] [above = of TEACHES] {QUARTER} edge node[right]{$\cM$} (TEACHES);
9 \node [entity] [below = of TEACHES] {ROOM} edge node[left]{$\cP$} (TEACHES);
10 \end{tikzpicture}
11 \end{document}
File notes/fig/misc/crow_foot.tex added (mode: 100644) (index 0000000..9300781)
1 \documentclass[border=20pt]{standalone}
2 \usepackage{tikz}
3 \usetikzlibrary{%
4 chains,
5 calc
6 }
7 \tikzset{
8 dummy/.style={
9 rectangle,
10 rounded corners,
11 draw=white, very thick,
12 text centered},
13 zig zag to/.style={
14 to path={(\tikztostart) -| ($(\tikztostart)!#1!(\tikztotarget)$) |- (\tikztotarget) \tikztonodes}
15 },
16 zig zag to/.default=0.5,
17 one to one/.style={
18 one-one, zig zag to
19 },
20 one to none/.style={
21 one-, zig zag to
22 },
23 oone to none/.style={
24 oone-, zig zag to
25 },
26 omany to none/.style={
27 omany-, zig zag to
28 },
29 one to many/.style={
30 one-crow's foot, zig zag to,
31 },
32 one to omany/.style={
33 one-omany, zig zag to
34 },
35 many to one/.style={
36 crow's foot-one, zig zag to
37 },
38 many to many/.style={
39 crow's foot-crow's foot, zig zag to
40 },
41 many to none/.style={
42 crow's foot-, zig zag to
43 }
44 }
45 \makeatletter
46 \pgfarrowsdeclare{crow's foot}{crow's foot}
47 {
48 \pgfarrowsleftextend{+-.5\pgflinewidth}%
49 \pgfarrowsrightextend{+.5\pgflinewidth}%
50 }
51 {
52 \pgfutil@tempdima=0.6pt%
53 %\advance\pgfutil@tempdima by.25\pgflinewidth%
54 \pgfsetdash{}{+0pt}%
55 \pgfsetmiterjoin%
56 \pgfpathmoveto{\pgfqpoint{0pt}{-9\pgfutil@tempdima}}%
57 \pgfpathlineto{\pgfqpoint{-13\pgfutil@tempdima}{0pt}}%
58 \pgfpathlineto{\pgfqpoint{0pt}{9\pgfutil@tempdima}}%
59 \pgfpathmoveto{\pgfqpoint{0\pgfutil@tempdima}{0\pgfutil@tempdima}}%
60 \pgfpathmoveto{\pgfqpoint{-8pt}{-6pt}}%
61 \pgfpathlineto{\pgfqpoint{-8pt}{-6pt}}%
62 \pgfpathlineto{\pgfqpoint{-8pt}{6pt}}%
63 \pgfusepathqstroke%
64 }
65
66 \pgfarrowsdeclare{omany}{omany}
67 {
68 \pgfarrowsleftextend{+-.5\pgflinewidth}%
69 \pgfarrowsrightextend{+.5\pgflinewidth}%
70 }
71 {
72 \pgfutil@tempdima=0.6pt%
73 %\advance\pgfutil@tempdima by.25\pgflinewidth%
74 \pgfsetdash{}{+0pt}%
75 \pgfsetmiterjoin%
76 \pgfpathmoveto{\pgfqpoint{0pt}{-9\pgfutil@tempdima}}%
77 \pgfpathlineto{\pgfqpoint{-13\pgfutil@tempdima}{0pt}}%
78 \pgfpathlineto{\pgfqpoint{0pt}{9\pgfutil@tempdima}}%
79 \pgfpathmoveto{\pgfqpoint{0\pgfutil@tempdima}{0\pgfutil@tempdima}}%
80 \pgfpathmoveto{\pgfqpoint{0\pgfutil@tempdima}{0\pgfutil@tempdima}}%
81 \pgfpathmoveto{\pgfqpoint{-6pt}{-6pt}}%
82 \pgfpathcircle{\pgfpoint{-11.5pt}{0}} {3.5pt}
83 \pgfusepathqstroke%
84 }
85
86 \pgfarrowsdeclare{oone}{oone}
87 {
88 \pgfarrowsleftextend{+-.5\pgflinewidth}%
89 \pgfarrowsrightextend{+.5\pgflinewidth}%
90 }
91 {
92 \pgfutil@tempdima=0.6pt%
93 %\advance\pgfutil@tempdima by.25\pgflinewidth%
94 \pgfsetdash{}{+0pt}%
95 \pgfsetmiterjoin%
96 \pgfpathmoveto{\pgfqpoint{0\pgfutil@tempdima}{0\pgfutil@tempdima}}%
97 \pgfpathmoveto{\pgfqpoint{-6pt}{-6pt}}%
98 \pgfpathlineto{\pgfqpoint{-6pt}{-6pt}}%
99 \pgfpathlineto{\pgfqpoint{-6pt}{6pt}}%
100 \pgfpathcircle{\pgfpoint{-11.5pt}{0}} {3.5pt}
101 \pgfusepathqstroke%
102 }
103
104 \pgfarrowsdeclare{one}{one}
105 {
106 \pgfarrowsleftextend{+-.5\pgflinewidth}%
107 \pgfarrowsrightextend{+.5\pgflinewidth}%
108 }
109 {
110 \pgfutil@tempdima=0.6pt%
111 %\advance\pgfutil@tempdima by.25\pgflinewidth%
112 \pgfsetdash{}{+0pt}%
113 \pgfsetmiterjoin%
114 \pgfpathmoveto{\pgfqpoint{0\pgfutil@tempdima}{0\pgfutil@tempdima}}%
115 \pgfpathmoveto{\pgfqpoint{-6pt}{-6pt}}%
116 \pgfpathlineto{\pgfqpoint{-6pt}{-6pt}}%
117 \pgfpathlineto{\pgfqpoint{-6pt}{6pt}}%
118 \pgfpathmoveto{\pgfqpoint{0\pgfutil@tempdima}{0\pgfutil@tempdima}}%
119 \pgfpathmoveto{\pgfqpoint{-8pt}{-6pt}}%
120 \pgfpathlineto{\pgfqpoint{-8pt}{-6pt}}%
121 \pgfpathlineto{\pgfqpoint{-8pt}{6pt}}%
122 \pgfusepathqstroke%
123 }
124 \pgfarrowsdeclare{oone}{oone}
125 {
126 \pgfarrowsleftextend{+-.5\pgflinewidth}%
127 \pgfarrowsrightextend{+.5\pgflinewidth}%
128 }
129 {
130 \pgfutil@tempdima=0.6pt%
131 %\advance\pgfutil@tempdima by.25\pgflinewidth%
132 \pgfsetdash{}{+0pt}%
133 \pgfsetmiterjoin%
134 \pgfpathmoveto{\pgfqpoint{0\pgfutil@tempdima}{0\pgfutil@tempdima}}%
135 \pgfpathmoveto{\pgfqpoint{-6pt}{-6pt}}%
136 \pgfpathlineto{\pgfqpoint{-6pt}{-6pt}}%
137 \pgfpathlineto{\pgfqpoint{-6pt}{6pt}}%
138 \pgfpathcircle{\pgfpoint{-11.5pt}{0}} {3.5pt}
139 \pgfusepathqstroke%
140 }
141 \def\property#1{\node[name=\entityname-#1, every property/.try]{#1};}
142 \def\properties{\begingroup\catcode`\_=11\relax\processproperties}
143 \def\processproperties#1{\endgroup%
144 \def\propertycode{}%
145 \foreach \p in {#1}{%
146 \expandafter\expandafter\expandafter\gdef\expandafter\expandafter\expandafter\propertycode%
147 \expandafter\expandafter\expandafter{\expandafter\propertycode\expandafter\property\expandafter{\p}\\}%
148 }%
149 \propertycode%
150 }
151
152
153
154 \begin{document}
155
156 \begin{tikzpicture}
157 \node (a0) {};
158 \node[right=2cm of a0] (b0) {};
159 \draw (b0.west) -- (a0.east);
160 \draw ($(b0) +(-0.4, -0.2)$) -- ($(b0) +(-0.4, 0.2)$);
161 \node[left =1cm of a0]{One};
162
163 \node[ below of = a0] (a1) {};
164 \node[right=2cm of a1] (b1) {};
165 \draw (b1.west) -- (a1.east);
166 \draw ($(b1) +(-0.2, -0.2)$) -- ($(b1) + (-0.5, 0)$) -- ($(b1) +(-0.2, 0.2)$);
167 \node[left =1cm of a1]{Many};
168
169 \node (meta1) at (4, -0.5) {\(\left.\rule{0cm}{1cm}\right\}\) Only the max.};
170
171 \node[ below of = a1] (a2) {};
172 \node[right=2cm of a2] (b2) {};
173 \draw[one to none] (b2.west) -- (a2.east);
174 \node[left =1cm of a2]{Exactly one};
175
176 \node[ below of = a2] (a3) {};
177 \node[right=2cm of a3] (b3) {};
178 \draw[oone to none] (b3.west) -- (a3.east);
179 \node[left =1cm of a3]{Zero or one};
180
181
182 \node[ below of = a3] (a4) {};
183 \node[right=2cm of a4] (b4) {};
184 \draw[many to none] (b4.west) -- (a4.east);
185 \node[left =1cm of a4]{One or many};
186
187 \node[ below of = a4] (a5) {};
188 \node[right=2cm of a5] (b5) {};
189 \draw[omany to none] (b5.west) -- (a5.east);
190 \node[left =1cm of a5]{Zero or many};
191
192 \node (meta2) at (4, -3.5) {\(\left.\rule{0cm}{2cm}\right\}\) Min. and max.};
193 \end{tikzpicture}
194
195
196 \end{document}
File notes/img/ALG_Logo_hires.png added (mode: 100644) (index 0000000..ee7655e)
File notes/img/mysql_install.png added (mode: 100644) (index 0000000..df321f3)
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