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

СОДЕРЖАНИЕ КУРСОВОЙ РАБОТЫ:

  1. Задание.

  2. Разработка структуры базы данных.

  3. ER модель базы данных.

  4. Логическая схема базы данных.

  5. Создание базы данных и таблиц на языке SQL.

  6. Выборка.

  7. Список использованной литературы.

Проектирование и создание базы данных учета распределения населения стран по национальным демографическим группам.

Вариант 13.

Задание:

Система учёта распределения населения стран по национальным демографическим группам.

Разработка структуры базы данных

Для реализации данной задачи создадим следующие таблицы:

  1. Таблицу «Страна», в которой будет храниться информации о странах, их ВВП, а так же численности жителей и официальном языке.

  2. В таблице «Группы» будет храниться информация о демографических национальных группах и численность населения входящего в эти группы.

  3. В таблице «Возраст» будет храниться информация о жителях по 3 возрастным категориям населения.

  4. В таблице «Национальность» будет храниться информация о жителях разных национальностей проживающих в одной стране, их родном языке.

Таблица «Страна» представляет собой сущность. Ее атрибуты: ВВП, общее число жителей, официальный язык. Ее первичный ключ – «страна».

Таблица «Группы» имеет атрибуты: численность, страна, возраст, национальность.

Таблица «Возраст» имеет атрибуты возраст и первичный ключ - возрастные группы.

Таблица «Национальность» имеет атрибуты: язык и первичный ключ - национальность.

ER модель базы данных

При исследовании предметной области составлена уточненная схема данных, которая показана на следующем рисунке.

Возраст

Логическая схема

После нормализации схемы данных получаем схему, представленную на следующем рисунке. Сущности этой схемы представлены в виде реляционных таблиц.

Создание базы данных и таблиц на SQL.

Содержимое этого скрипта полностью отражает концептуальную схему и в него добавлены ограничения NOT NULL для ряда столбцов.

CREATE TABLE [Возраст] (

[Возрастная группа] [int] NOT NULL ,

[Возраст] [varchar] (50) COLLATE Cyrillic_General_CI_AS NULL ,

CONSTRAINT [PK_Возраст] PRIMARY KEY CLUSTERED

(

[Возрастная группа]

) ON [PRIMARY]

) ON [PRIMARY]

GO

CREATE TABLE [Группы] (

[группа] [int] NOT NULL ,

[страна] [varchar] (50) COLLATE Cyrillic_General_CI_AS NULL ,

[возрастная группа] [int] NULL ,

[национальность] [varchar] (50) COLLATE Cyrillic_General_CI_AS NULL ,

[численность, тыс чел.] [int] NULL ,

CONSTRAINT [PK_Группы] PRIMARY KEY CLUSTERED

(

[группа]

) ON [PRIMARY] ,

CONSTRAINT [FK_Группы_Возраст] FOREIGN KEY

(

[возрастная группа]

) REFERENCES [Возраст] (

[Возрастная группа]

),

CONSTRAINT [FK_Группы_Национальность] FOREIGN KEY

(

[национальность]

) REFERENCES [Национальность] (

[национальность]

),

CONSTRAINT [FK_Группы_Страна] FOREIGN KEY

(

[страна]

) REFERENCES [Страна] (

[страна]

)

) ON [PRIMARY]

GO

CREATE TABLE [Национальность] (

[национальность] [varchar] (50) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[язык] [varchar] (50) COLLATE Cyrillic_General_CI_AS NULL ,

CONSTRAINT [PK_Национальность] PRIMARY KEY CLUSTERED

(

[национальность]

) ON [PRIMARY]

) ON [PRIMARY]

GO

CREATE TABLE [Страна] (

[страна] [varchar] (50) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[ВВП, млн $] [int] NULL ,

[общее число жителей] [float] NULL ,

[официальный язык] [varchar] (50) COLLATE Cyrillic_General_CI_AS NULL ,

CONSTRAINT [PK_Страна] PRIMARY KEY CLUSTERED

(

[страна]

) ON [PRIMARY]

) ON [PRIMARY]

GO

Проведем выборки:

Выборка 1: «по ВВП». Условие - показать страны, в которых ВВП меньше указанного (< '54754647' млн $)

SELECT dbo.Страна.[ВВП, млн $], dbo.Страна.страна

FROM dbo.Возраст INNER JOIN

dbo.Группы ON dbo.Возраст.[Возрастная группа] = dbo.Группы.[возрастная группа] INNER JOIN

dbo.Национальность ON dbo.Группы.национальность = dbo.Национальность.национальность INNER JOIN

dbo.Страна ON dbo.Группы.страна = dbo.Страна.страна

WHERE (dbo.Страна.[ВВП, млн $] < '54754647')

Выборка 2: «по языку». Условие – показать все страны с заданным официальным языком (английский).

SELECT TOP 100 PERCENT dbo.Страна.страна, dbo.Страна.[официальный язык]

FROM dbo.Возраст INNER JOIN

dbo.Группы ON dbo.Возраст.[Возрастная группа] = dbo.Группы.[возрастная группа] INNER JOIN

dbo.Национальность ON dbo.Группы.национальность = dbo.Национальность.национальность INNER JOIN

dbo.Страна ON dbo.Группы.страна = dbo.Страна.страна

WHERE (dbo.Страна.[официальный язык] = 'английский')

Выборка 3: Вывод статистических данных по странам о возрастных национальных группах.

SELECT dbo.Страна.страна AS Expr1, dbo.Страна.[общее число жителей] AS Expr2, dbo.Национальность.национальность AS Expr3,

dbo.Возраст.[Возрастная группа] AS Expr4

FROM dbo.Возраст INNER JOIN

dbo.Группы ON dbo.Возраст.[Возрастная группа] = dbo.Группы.[возрастная группа] INNER JOIN

dbo.Национальность ON dbo.Группы.национальность = dbo.Национальность.национальность INNER JOIN

dbo.Страна ON dbo.Группы.страна = dbo.Страна.страна

  1. СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ.

  1. Дж. Грофф, П. Вайнберг «SQL: Полное руководство», перевод с английского В.Р. Гинзбурга – 2-е издание, переработанное и дополненное – К: Издательская группа BHV, «Ирина», 2001г.

  1. Ш.И. Панцхава «Электронный учебник по курсу Базы Данных».

  1. Курс лекций по предмету «Информационное обеспечение систем управления».

9

Соседние файлы в папке База данных - Учет населения стран