Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
27
Добавлен:
02.05.2014
Размер:
2.03 Mб
Скачать

6.1 Sql-код создания таблиц

В данном подразделе в соответствии с реляционной моделью записываются SQL-операторы CREATE TABLE, обеспечивающие создание таблиц базы данных. При этом с помощью средств задания табличных ограничений реализуются стандартные ограничения, специфицированные на предыдущем этапе в таблицах 5.1–5.3 и 5.6. При программировании ориентировались на стандартный SQL2 или на диалект Transact-SQL для Microsoft SQL Server 2000. Результаты приведены в таблице 6.1.

Таблица 6.1.  SQL-код создания таблиц базы данных

п/п

Источник

SQL-операторы

1

CREATE TABLE Сотрудник (

2

[Личный номер] [INT] (6) NOT NULL,

3

[ФИО] [VARCHAR (40) NOT NULL,

4

[Паспортные данные] [INTEGER (11) NOT NULL,

5

[Телефон] [INTEGER (6) NOT NULL,

6

[Семейное положение] [BIT] NOT NULL,

7

[Образование] [VARCHAR (30) NOT NULL,

8

[Зарплата] [BIGINT] NOT NULL,

9

[Дата рождения] [DATE NOT NULL,

10

[Группа крови] [INTEGER (2) NOT NULL,

11

[Код звания] [INTEGER (3) NOT NULL,

12

[Код должности] [INTEGER (3) NOT NULL,

13

CONSTRAINT PK_Сотрудник

14

PRIMARY KEY ([Личный номер]),

15

CONSTRAINT FK_Сотрудник_Звание

16

FOREIGN KEY ([Код звания])

17

REFERENCES Звание([Код])

18

ON UPDATE CASCADE

19

ON DELETE RESTRICTED,

20

CONSTRAINT FK_Сотрудник_Должность

21

FOREIGN KEY ([Код Должности])

22

REFERENCES Должность([Код])

23

ON UPDATE CASCADE

24

ON DELETE RESTRICTED,

25

CONSTRAINT UN_ФИО

26

UNIQUE (ФИО),

27

CONSTRAINT UN_Пасп

28

UNIQUE (Паспортные данные),

29

CONSTRAINT CH_ФИО

30

CHECK (ФИО BETWEEN “А” AND “яя”),

31

CONSTRAINT CH_ГрКрови

32

CHECK (Группа крови (BETWEEN 1 AND 4) OR “+” OR “-“),

33

CONSTRAINT CH_Дата_рождения

34

CHECK ([Дата рождения]- GETDATE >=20 AND [Дата рождения]- GETDATE <=100)

35

};

36

37

CREATE TABLE [Имущество] (

38

[Инвентарный номер] INTEGER (6) NOT NULL,

39

[Название] INTEGER (6) NOT NULL,

40

[Личный номер] INTEGER (6) NOT NULL,

41

CONSTRAINT PK_ИнвНомер

42

PRIMARY KEY ([Инвентарный номер]),

43

CONSTRAINT FK_Имущество_Сотрудник

44

FOREIGN KEY ([Личный номер])

45

REFERENCES Сотрудник ([Личный номер])

46

ON UPDATE CASCADE

47

ON DELETE RESTRICTED

48

);

49

CREATE TABLE [Место] (

50

[Нпп] COUNTER NOT NULL,

51

[Код подразделения] INTEGER (6) NOT NULL,

52

[Личный номер] INTEGER (6) NOT NULL,

53

[Дата назначения] DATE NOT NULL,

54

[Дата увольнения] DATE,

55

CONSTRAINT PK_Нпп

56

PRIMARY KEY ([Нпп]),

57

CONSTRAINT FK_Место_Подразделение

58

FOREIGN KEY ([Код подразделения])

59

REFERENCES Подразделение ([Код])

60

ON UPDATE CASCADE

61

ON DELETE RESTRICTED

62

CONSTRAINT FK_Место_Сотрудник

63

FOREIGN KEY ([Личный номер])

64

REFERENCES Сотрудник ([Личный номер])

65

ON UPDATE CASCADE

66

ON DELETE CASCADE

67

CONSTRAINT CH_Дата_назначения

68

CHECK ([Дата назначения]- GETDATE <=0)

69

CONSTRAINT CH_Дата_увольнения

70

CHECK ([Дата увольнения]- GETDATE <=0)

71

);

72

CREATE TABLE Подразделение (

73

[Код] INTEGER (6) NOT NULL,

74

[Название] VARCHAR (30) NOT NULL,

75

CONSTRAINT PK_Подразделение

76

PRIMARY KEY ([Код подразделения])

77

);

78

CREATE TABLE Должность (

79

[Код] INTEGER (6) NOT NULL,

80

[Название] VARCHAR (30) NOT NULL,

81

CONSTRAINT PK_Должность

82

PRIMARY KEY ([Код])

83

);

84

85

CREATE TABLE [Дети] (

86

[Личный номер] INTEGER (6) NOT NULL,

87

[Нпп] COUNTER NOT NULL,

88

[Дата рождения] DATE NOT NULL,

89

[Пол] BIT NOT NULL,

90

CONSTRAINT PK_Дети

91

PRIMARY KEY ([Нпп]),

92

CONSTRAINT FK_Дети_Сотрудник

93

FOREIGN KEY ([Личный номер])

94

REFERENCES Сотрудник ([Личный номер])

95

ON UPDATE CASCADE

96

ON DELETE CASCADE,

97

CONSTRAINT CH_Дата

98

CHECK ([Дата ухода]- GETDATE >=0)

99

);

100

CREATE TABLE Дежурство (

101

[Нпп дежурства] COUNTER NOT NULL,

102

[Личный номер дежурного] INTEGER (6) NOT NULL,

103

[Нпп наряда] INTEGER (6) NOT NULL,

104

[Дата] DATA NOT NULL,

105

CONSTRAINT PK_Дежурство

106

PRIMARY KEY ([Нпп дежурства]),

107

CONSTRAINT FK_Дежурство_Сотрудник

108

FOREIGN KEY ([Личный номер дежурного])

109

REFERENCES Сотрудник ([Личный номер])

110

ON UPDATE CASCADE

111

ON DELETE CASCADE,

112

CONSTRAINT FK_Дежурство_Наряд

113

FOREIGN KEY ([Нпп наряда])

114

REFERENCES Наряд ([Нпп])

115

ON UPDATE CASCADE

116

ON DELETE CASCADE,

117

CONSTRAINT UN_Дата

118

UNIQUE (Дата),

119

);

120

CREATE TABLE Наряд (

121

[Нпп] COUNTER NOT NULL,

122

[Номер группы] INTEGER (3) NOT NULL,

123

CONSTRAINT PK_Наряд

124

PRIMARY KEY ([Нпп])

125

CONSTRAINT FK_Наряд_Группа

126

FOREIGN KEY ([Номер группы])

127

REFERENCES Группа ([Номер группы])

128

ON UPDATE CASCADE

129

ON DELETE CASCADE,

130

);

131

CREATE TABLE Вызов (

132

[Нпп вызова] COUNTER NOT NULL,

133

[Личный номер дежурного] INTEGER (6) NOT NULL,

134

[Номер опер.группы] INTEGER NOT NULL,

135

[Телефон звонившего] INTEGER (10) NOT NULL,

136

[Дата вызова] DATE NOT NULL,

137

[Время вызова] DATE NOT NULL,

138

[Причина] VARCHAR (50) NOT NULL,

139

[Адрес] VARCHAR (100) NOT NULL,

140

[Степень риска] INTEGER (1) NOT NULL,

141

CONSTRAINT PK_Вызов

142

PRIMARY KEY ([Нпп вызова]),

143

CONSTRAINT FK_Вызов_Сотрудник

144

FOREIGN KEY ([Личный номер дежурного])

145

REFERENCES Сотрудник ([Личный номер])

146

ON UPDATE CASCADE

147

ON DELETE CASCADE,

148

CONSTRAINT FK_Вызов_Группа

149

FOREIGN KEY ([Номер опер.группы])

150

REFERENCES Группа ([Номер группы])

151

ON UPDATE CASCADE

152

ON DELETE RESTRICTED

153

CONSTRAINT FK_Вызов_Звонивший

154

FOREIGN KEY ([Телефон звонившего])

155

REFERENCES Звонивший ([Телефон])

156

ON UPDATE CASCADE

157

ON DELETE CASCADE

158

);

159

CREATE TABLE Звонивший (

160

[Телефон] INTEGER (10) NOT NULL,

161

[ФИО] VARCHAR (40),

162

CONSTRAINT PK_Звонивший

163

PRIMARY KEY ([Телефон]),

164

CONSTRAINT CH_ФИО

165

CHECK (ФИО BETWEEN “А” AND “яя”),

166

);

167

CREATE TABLE [Отчет] (

168

[Нпп вызова] INTEGER NOT NULL,

169

[Номер протокола] INTEGER (6) NOT NULL,

170

[Мероприятия] МЕМО NOT NULL,

171

[Примечание] МЕМО,

172

CONSTRAINT PK_Отчет

173

PRIMARY KEY (Номер протокола),

174

CONSTRAINT FK_Отчет_Вызов

175

FOREIGN KEY ([Нпп вызова])

176

REFERENCES Вызов ([Нпп вызова])

177

ON UPDATE CASCADE

178

ON DELETE CASCADE,

179

);

Соседние файлы в папке База данных - ИС милиции