Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
База данных - ИС ГИБДД. Водительские права / Курсовой проект (ГИБДД. База данных водительских прав)(5,6 части).doc
Скачиваний:
63
Добавлен:
02.05.2014
Размер:
2.54 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

EXEC sp_addtype N'код', N'int', N'not null'

2

GO

3

EXEC sp_addtype N'номер', N'nchar (6)', N'not null'

4

GO

5

EXEC sp_addtype N'номер паспорта', N'nchar (11)', N'not null'

6

GO

7

EXEC sp_addtype N'номер прав', N'nchar (8)', N'not null'

8

GO

9

EXEC sp_addtype N'фио', N'varchar (40)', N'not null'

10

GO

11

CREATE TABLE [Курсант](

12

[Паспортные данные] [номер паспорта] NOT NULL,

13

[Номер автошколы] [номер] NOT NULL,

14

[ФИО] [фио] NOT NULL

15

CONSTRAINT PK_Курсант

16

PRIMARY KEY ([Паспортные данные])

17

)

18

CREATE TABLE [Заявитель] (

19

[Паспортные данные] [номер паспорта] NOT NULL,

20

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

21

[ФИО] [фио] NOT NULL,

22

[Телефон] [номер] NOT NULL,

23

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

24

CONSTRAINT PK_Заявитель

25

PRIMARY KEY ([Паспортные данные])

26

)

27

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

28

[Код] [код] NOT NULL,

29

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

30

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

31

PRIMARY KEY ([Код])

32

33

)

34

CREATE TABLE Звание(

35

[Код] [код] NOT NULL,

36

[Звание] [VARCHAR] (30) NOT NULL

37

CONSTRAINT ch_Звание

38

CHECK ([Звание] BETWEEN 'A' AND 'я'),

39

CONSTRAINT PK_Звание

40

PRIMARY KEY ([Код])

41

)

42

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

43

[Код] [код] NOT NULL,

44

[Название должности] [VARCHAR] (30) NOT NULL

45

CONSTRAINT PK_Должность

46

PRIMARY KEY ([Код])

47

)

48

49

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

50

[Личный номер] [номер] NOT NULL,

51

[ФИО] [фио] NOT NULL,

52

[Паспортные данные] [номер паспорта] NOT NULL,

53

[Телефон] [номер] NOT NULL,

54

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

55

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

56

CONSTRAINT ch_Образование

57

CHECK ([Образование] BETWEEN 'A' AND 'я'),

58

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

59

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

60

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

61

CONSTRAINT ch_ГруппаКрови

62

CHECK ([Группа крови] LIKE '[1-4][+-]'),

63

[Код звания] [код] NOT NULL,

64

[Код должности] [код] NOT NULL

65

66

CONSTRAINT PK_Сотрудник

67

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

68

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

69

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

70

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

71

ON UPDATE CASCADE,

72

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

73

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

74

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

75

ON UPDATE CASCADE

76

)

77

CREATE TABLE [Права] (

78

[Номер прав] [номер прав] NOT NULL,

79

[Личный номер сотр.] [номер] NOT NULL,

80

[Срок действия] DATETIME NOT NULL,

81

[Категория] [CHAR] NOT NULL,

82

CONSTRAINT ch_Категория

83

CHECK ([Категория] LIKE '[A-D]'),

84

CONSTRAINT ch_ДатаВыдачи

85

CHECK ([Дата выдачи] < [Срок действия]),

86

[Дата выдачи] DATETIME NOT NULL

87

CONSTRAINT PK_Права

88

PRIMARY KEY ([Номер прав])

89

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

90

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

91

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

92

ON UPDATE CASCADE

93

)

94

CREATE TABLE [Владелец прав] (

95

[Номер прав] [номер прав] NOT NULL,

96

[Паспортные данные] [номер паспорта] NOT NULL,

97

[Место рождения] [VARCHAR] (100) NOT NULL,

98

[ФИО] [фио] NOT NULL,

99

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

100

CONSTRAINT PK_ВладелецПрав

101

PRIMARY KEY ([Номер прав],[Паспортные данные])

102

CONSTRAINT FK_ВладелецПрав_Прав

103

FOREIGN KEY ([Номер прав])

104

REFERENCES Права([Номер прав])

105

ON UPDATE CASCADE

106

)

107

CREATE TABLE [Практический экзамен] (

108

[НПП] [номер] NOT NULL,

109

[Зачет первого этапа] BIT NOT NULL,

110

[Зачет второго этапа] BIT NOT NULL,

111

[Примечания] [VARCHAR] (255) NOT NULL,

112

CONSTRAINT ch_ПрактПримечания

113

CHECK ([Примечания] BETWEEN 'A' AND 'я'),

114

[Личный номер сотр.] [номер] NOT NULL,

115

[Дата сдачи] DATETIME NOT NULL,

116

[Паспорт курсанта] [номер паспорта] NOT NULL

117

CONSTRAINT PK_ПрактическийЭкзамен

118

PRIMARY KEY ([НПП],[Паспорт курсанта],[Личный номер сотр.])

119

CONSTRAINT FK_ПрактическийЭкзамен_Курсант

120

FOREIGN KEY ([Паспорт курсанта])

121

REFERENCES Курсант([Паспортные данные])

122

ON UPDATE CASCADE ,

123

124

CONSTRAINT FK_ПрактическийЭкзамен_Сотрудник

125

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

126

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

127

ON UPDATE CASCADE

128

)

129

CREATE TABLE [Теоретический экзамен] (

130

[НПП] [номер] NOT NULL,

131

[Кол-во неправ. ответов] [INT] NOT NULL,

132

[Примечания] [VARCHAR] (255) NOT NULL,

133

CONSTRAINT ch_ТеорПримечания

134

CHECK ([Примечания] BETWEEN 'A' AND 'я'),

135

[Личный номер сотр.] [номер] NOT NULL,

136

[Дата сдачи] DATETIME NOT NULL,

137

[Паспорт курсанта] [номер паспорта] NOT NULL

138

CONSTRAINT PK_ТеоретическийЭкзамен

139

PRIMARY KEY ([НПП],[Паспорт курсанта],[Личный номер сотр.])

140

CONSTRAINT FK_ТеоретическийЭкзамен_Курсант

141

FOREIGN KEY ([Паспорт курсанта])

142

REFERENCES Курсант([Паспортные данные])

143

ON UPDATE CASCADE,

144

CONSTRAINT FK_ТеоретическийЭкзамен_Сотрудник

145

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

146

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

147

ON UPDATE CASCADE

148

)

149

CREATE TABLE [Заявление] (

150

[Номер заявления] [номер] NOT NULL,

151

[Паспорт заявителя] [номер паспорта] NOT NULL,

152

[Личный номер сотр.] [номер] NOT NULL,

153

[Текст] [TEXT] NOT NULL,

154

[Основание] [VARCHAR] (255) NOT NULL,

155

CONSTRAINT ch_Основание

156

CHECK ([Основание] BETWEEN 'A' AND 'я'),

157

[Дата заявления] DATETIME NOT NULL

158

CONSTRAINT PK_Заявление

159

PRIMARY KEY ([Номер заявления],[Личный номер сотр.])

160

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

161

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

162

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

163

ON UPDATE CASCADE,

164

CONSTRAINT FK_Заявление_Заявитель

165

FOREIGN KEY ([Паспорт заявителя])

166

REFERENCES Заявитель([Паспортные данные])

167

ON UPDATE CASCADE

168

)

169

CREATE TABLE [Дети] (

170

[Личный номер сотр.] [номер] NOT NULL,

171

[НПП] [код] NOT NULL,

172

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

173

[Пол] BIT NOT NULL

174

CONSTRAINT PK_Дети

175

PRIMARY KEY ([НПП],[Личный номер сотр.])

176

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

177

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

178

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

179

ON UPDATE CASCADE

180

)

181

CREATE TABLE [Место] (

182

[НПП] [код] NOT NULL,

183

[Код подразделения] [код] NOT NULL,

184

[Личный номер сотр.] [номер] NOT NULL,

185

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

186

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

187

CONSTRAINT ch_ДатаНазнач

188

CHECK ([Дата назначения] < [Дата увольнения]),

189

CONSTRAINT PK_Место

190

PRIMARY KEY ([Нпп],[Личный номер сотр.],[Код подразделения])

191

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

192

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

193

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

194

ON UPDATE CASCADE,

195

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

196

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

197

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

198

ON UPDATE CASCADE

199

)