20160119_jeffrey - silenceuncrio/diary GitHub Wiki
Index
- 1020 - Step 4-1: List assertions using the simplified E-R diagram - exclude different things
- 1040 - Step 4-1: List assertions using the simplified E-R diagram - different things
- 1045 - Step 3-1: Create simplified E-R diagram
- 1315 - Step 5: Create detail E-R diagram using assertion
- 1330 - Step 5-1: Use assertions and the simplified E-R diagram to create the detailed E-R diagram - Exclude Different Things
- 1345 - Step 5-1: Use assertions and the simplified E-R diagram to create the detailed E-R diagram - Different Things
- 1400 - Step 6: Transform the detailed E-R diagram into an implementable R-M diagram
- 1410 - Step 6-1: Many-to-many relationships - Exclude Different Things
- 1445 - Step 6-1: Many-to-many relationships - Different Things
- 1450 - Step 6-2: One-to-many relationships - Exclude Different Things
- 1500 - Step 6-2: One-to-many relationships - Different Things
- 1505 - Step 6-3 One-to-one relationships - Exclude Different Things
- 1515 - Step 6-3: One-to-many relationships - Different Things
- 1620 - Implementation of Design - Entities and Attributes
- 1630 - Implementation of Design - R-M Diagram
- 1650 - Implementation of Design - Data Dictionary
1020
Step 4-1: List assertions using the simplified E-R diagram - exclude different things
不同種類的 Thing 先不看
再 review 一次並做修改 Step 4-1
First
- A Box
must contain at least one Thing
- A Thing's status
can be associated to many Rules
- A Rule must trigger
at least one Actions
Seconds
- Each Thing
must be contained in only one Box
- Each Rule
must be associated to at least one Thing's status
- Each Action
can be triggered by many Rules
1040
Step 4-1: List assertions using the simplified E-R diagram - different things
First
- A KeypadInput
must be assigned to only one Thing
- A OpenDetector
must be assigned to only one Thing
- A LightDetector
must be assigned to only one Thing
- A MotionDetector
must be assigned to only one Thing
- A VibrateDetector
must be assigned to only one Thing
- A SoundDetector
must be assigned to only one Thing
- A TempDetector
must be assigned to only one Thing
- A CoDetector
must be assigned to only one Thing
- A BleDetector
must be assigned to only one Thing
Seconds
- Each Thing
can be assigned to only one KeypadInput
- Each Thing
can be assigned to only one OpenDetector
- Each Thing
can be assigned to only one LightDetector
- Each Thing
can be assigned to only one MotionDetector
- Each Thing
can be assigned to only one VibrateDetector
- Each Thing
can be assigned to only one SoundDetector
- Each Thing
can be assigned to only one TempDetector
- Each Thing
can be assigned to only one CoDetector
- Each Thing
can be assigned to only one BleDetector
1045
Step 3-1: Create simplified E-R diagram
根據今天的推導再畫一次
Control Center Database Step 3-1 Exclude Different Things

Control Center Database Step 3-1 Different Things

1315
Step 5: Create detail E-R diagram using assertion
- Optionality
0 - can(optional)
- Optionality
1 - Must(obligatory)
- Capdinality
1 - Only one
- Capdinality
N - Many or At least one
All the possible combinations of optionality:cardinality that can appear on the detail E-R diagram
- 0:1 - [Entity] can [relationship] only one [Entity]
- 0:N - [Entity] can [relationship] many [Entity]; or [Entity] can [relationship] at least one [Entity]
- 1:1 - [Entity] must [relationship] only one [Entity]
- 1:N - [Entity] must [relationship] many [Entity]; or [Entity] must [relationship] at least one [Entity]
1330
Step 5-1: Use assertions and the simplified E-R diagram to create the detailed E-R diagram - Exclude Different Things
- Boxes - Things
- A Box
must contain at least one Thing - 1:N
- Each Thing
must be contained in only one Box - 1:1
- Things - Rules
- A Thing's status
can be associated to many Rules - 0:N
- Each Rule
must be associated to at least one Thing's status - 1:N
- Rules - Actions
- A Rule
must trigger at least one Actions - 1:N
- Each Action
can be triggered by many Rules - 0:N

1345
Step 5-1: Use assertions and the simplified E-R diagram to create the detailed E-R diagram - Different Things
- KeypadInputs - Things
- A KeypadInput
must be assigned to only one Thing - 1:1
- Each Thing
can be assigned to only one KeypadInput - 0:1
- OpenDetectors - Things
- A OpenDetector
must be assigned to only one Thing - 1:1
- Each Thing
can be assigned to only one OpenDetector - 0:1
- LightDetectors - Things
- A LightDetector
must be assigned to only one Thing - 1:1
- Each Thing
can be assigned to only one LightDetector - 0:1
- MotionDetectors - Things
- A MotionDetector
must be assigned to only one Thing - 1:1
- Each Thing
can be assigned to only one MotionDetector - 0:1
- VibrateDetectors - Things
- A VibrateDetector
must be assigned to only one Thing - 1:1
- Each Thing
can be assigned to only one VibrateDetector - 0:1
- SoundDetectors - Things
- A SoundDetector
must be assigned to only one Thing - 1:1
- Each Thing
can be assigned to only one SoundDetector - 0:1
- TempDetectors - Things
- A TempDetector
must be assigned to only one Thing - 1:1
- Each Thing
can be assigned to only one TempDetector - 0:1
- CoDetectors - Things
- A CoDetector
must be assigned to only one Thing - 1:1
- Each Thing
can be assigned to only one CoDetector - 0:1
- BleDetectors - Things
- A BleDetector
must be assigned to only one Thing - 1:1
- Each Thing
can be assigned to only one BleDetector - 0:1

1400
Step 6: Transform the detailed E-R diagram into an implementable R-M diagram
1410
Step 6-1: Many-to-many relationships - Exclude Different Things

1445
Step 6-1: Many-to-many relationships - Different Things

1450
Step 6-2: One-to-many relationships - Exclude Different Things

1500
Step 6-2: One-to-many relationships - Different Things

1505
Step 6-3 One-to-one relationships - Exclude Different Things

1515
Step 6-3: One-to-many relationships - Different Things

1620
Implementation of Design - Entities and Attributes
| Boxes |
Things |
Rules |
Actions |
| (PK)BoxId |
(PK)ThingId |
(PK)RuleId |
(PK)ActionId |
| BoxName |
ThingType |
RuleName |
ActionName |
| BoxLocation |
ThingStatus_ |
RuleConfig_ |
ActionConfig_ |
| BoxConfig_ |
|
|
|
| KeypadInputs |
OpenDetectors |
LightDetectors |
MotionDetectors |
VibrateDetectors |
| (PK)KeypadId |
(PK)OpenId |
(PK)LightId |
(PK)MotionId |
(PK)VibrateId |
| KeypadConfig_ |
OpenConfig_ |
LightConfig_ |
MotionConfig_ |
VibrateConfig_ |
| KeypadStatus_ |
OpenStatus_ |
LightStatus_ |
MotionStatus_ |
VibrateStatus_ |
| SoundDetectos |
TempDetectors |
CoDetectors |
BleDetectors |
| (PK)SoundId |
(PK)TempId |
(PK)CoId |
(PK)BleId |
| SoundConfig_ |
TempConfig_ |
CoConfig_ |
BleConfig_ |
| SoundStatus_ |
TempStatus_ |
CoStatus_ |
BleStatus_ |
1630
Implementation of Design - R-M Diagram


1650
Implementation of Design - Data Dictionary
Table - Boxes
| Column |
Data Type |
Length |
Indexed |
Required(Default) |
| (PK)BoxId |
Number |
NA |
Yes, Primary Key |
Yes |
| BoxName |
Character |
16 |
No |
Yes |
| BoxLocation |
Character |
32 |
No |
Yes |
| BoxConfig_ |
Character |
32 |
No |
Yes |
Table - Things
| Column |
Data Type |
Length |
Indexed |
Required(Default) |
| (PK)ThingId |
Number |
NA |
Yes, Primary Key |
Yes |
| ThingType |
Number |
NA |
No |
Yes |
| ThingStatus_ |
Character |
32 |
No |
No |
| (FK)BoxId |
Number |
NA |
Yes, Foreign Key |
Yes |
Table - ThingRules
| Column |
Data Type |
Length |
Indexed |
Required(Default) |
| (PK)ThingRuleId |
Number |
NA |
Yes, Primary Key |
Yes |
| (FK)ThingId |
Number |
NA |
Yes, Foreign Key |
Yes |
| (FK)RuleId |
Number |
NA |
Yes, Foreign Key |
Yes |
Table - Rules
| Column |
Data Type |
Length |
Indexed |
Required(Default) |
| (PK)RuleId |
Number |
NA |
Yes, Primary Key |
Yes |
| RuleName |
Character |
16 |
No |
Yes |
| RuleConfig_ |
Character |
32 |
No |
Yes |
Table - RuleActions
| Column |
Data Type |
Length |
Indexed |
Required(Default) |
| (PK)RuleActionId |
Number |
NA |
Yes, Primary Key |
Yes |
| (FK)RuleId |
Number |
NA |
Yes, Foreign Key |
Yes |
| (FK)ActionId |
Number |
NA |
Yes, Foreign Key |
Yes |
Table - Actions
| Column |
Data Type |
Length |
Indexed |
Required(Default) |
| (PK)ActionId |
Number |
NA |
Yes, Primary Key |
Yes |
| ActionName |
Character |
16 |
No |
Yes |
| ActionConfig_ |
Character |
32 |
No |
Yes |
Table - KeypadInputs
| Column |
Data Type |
Length |
Indexed |
Required(Default) |
| (PK)KeypadId |
Number |
NA |
Yes, Primary Key |
Yes |
| KeypadConfig_ |
Character |
32 |
No |
Yes |
| KeypadStatus_ |
Character |
32 |
No |
Yes |
| (FK)ThingId |
Number |
NA |
Yes, Foreign Key |
Yes |
Table - LightDetectors
| Column |
Data Type |
Length |
Indexed |
Required(Default) |
| (PK)LightId |
Number |
NA |
Yes, Primary Key |
Yes |
| LightConfig_ |
Character |
32 |
No |
Yes |
| LightStatus_ |
Character |
32 |
No |
Yes |
| (FK)ThingId |
Number |
NA |
Yes, Foreign Key |
Yes |
Table - OpenDetectors
| Column |
Data Type |
Length |
Indexed |
Required(Default) |
| (PK)OpenId |
Number |
NA |
Yes, Primary Key |
Yes |
| OpenConfig_ |
Character |
32 |
No |
Yes |
| OpenStatus_ |
Character |
32 |
No |
Yes |
| (FK)ThingId |
Number |
NA |
Yes, Foreign Key |
Yes |
Table - MotionDetectors
| Column |
Data Type |
Length |
Indexed |
Required(Default) |
| (PK)MotionId |
Number |
NA |
Yes, Primary Key |
Yes |
| MotionConfig_ |
Character |
32 |
No |
Yes |
| MotionStatus_ |
Character |
32 |
No |
Yes |
| (FK)ThingId |
Number |
NA |
Yes, Foreign Key |
Yes |
Table - VibrateDetectors
| Column |
Data Type |
Length |
Indexed |
Required(Default) |
| (PK)VibrateId |
Number |
NA |
Yes, Primary Key |
Yes |
| VibrateConfig_ |
Character |
32 |
No |
Yes |
| VibrateStatus_ |
Character |
32 |
No |
Yes |
| (FK)ThingId |
Number |
NA |
Yes, Foreign Key |
Yes |
Table - SoundDetectors
| Column |
Data Type |
Length |
Indexed |
Required(Default) |
| (PK)SoundId |
Number |
NA |
Yes, Primary Key |
Yes |
| SoundConfig_ |
Character |
32 |
No |
Yes |
| SoundStatus_ |
Character |
32 |
No |
Yes |
| (FK)ThingId |
Number |
NA |
Yes, Foreign Key |
Yes |
Table - TempDetectors
| Column |
Data Type |
Length |
Indexed |
Required(Default) |
| (PK)TempId |
Number |
NA |
Yes, Primary Key |
Yes |
| TempConfig_ |
Character |
32 |
No |
Yes |
| TempStatus_ |
Character |
32 |
No |
Yes |
| (FK)ThingId |
Number |
NA |
Yes, Foreign Key |
Yes |
Table - CoDetectors
| Column |
Data Type |
Length |
Indexed |
Required(Default) |
| (PK)CoId |
Number |
NA |
Yes, Primary Key |
Yes |
| CoConfig_ |
Character |
32 |
No |
Yes |
| CoStatus_ |
Character |
32 |
No |
Yes |
| (FK)ThingId |
Number |
NA |
Yes, Foreign Key |
Yes |
Table - BleDetectors
| Column |
Data Type |
Length |
Indexed |
Required(Default) |
| (PK)BleId |
Number |
NA |
Yes, Primary Key |
Yes |
| BleConfig_ |
Character |
32 |
No |
Yes |
| BleStatus_ |
Character |
32 |
No |
Yes |
| (FK)ThingId |
Number |
NA |
Yes, Foreign Key |
Yes |