Курсовая работа (т): Разработка базы данных для CMS интернет-магазина

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Разработка базы данных для CMS интернет-магазина

Курсовая работа

Разработка базы данных для CMS интернет-магазина

Оглавление

Введение

. Основные понятия

.1 Что такое реляционная база данных

.2 Что такое SQL

.3 Что такое CMS

.4 Основные функции CMS

.5 Интернет-магазин

.6 Что такое сервер MySQL

.7 Типы данных MySQL

. Проектирование и создание базы данных

.1 Таблица категорий товара

.2 Таблица покупателей

.3 Таблица способов доставки

.4 Таблица товаров

.5 Таблица заказов

.6 Таблица заказанных товаров

.7 Итоги создания базы данных

. Разработка SQL выборок данных из БД

.1 Выборка таблицы категорий

.2 Выборка всех товаров определенной категории

Заключение

Список литературы




Введение


Сегодня ни одно предприятие не мыслит себя без использования таких информационных технологий как базы данных. Для того чтобы получать максимальную прибыль и становиться лидером на рынке необходимо эффективней и быстрее других обрабатывать информацию. Актуальность создания интернет-магазина сегодня неоспорима, а вопрос о разработки правильной структуры базы данных интернет-магазина не менее актуален.

Целями данного курсового проекта являются: закрепление знаний и навыков, полученных в рамках курса «Базы данных», и получение практического опыта проектирования и реализации баз данных в архитектуре «клиент-сервер».

Реляционная база данных содержит как структурную, так и семантическую информацию. Структура базы данных определяется числом и видом включенных в нее отношений, и связями типа «один-ко-многим», существующими между кортежами этих отношений. Семантическая часть описывает множество функциональных зависимостей, существующих между атрибутами этих отношений. К сожалению, не все отношения одинаково желательны. Таблица, отвечающая минимальному определению отношения, может иметь быть неэффективную или неподходящую структуру. Для некоторых отношений изменение данных может привести к нежелательным последствиям, называемых аномалиями модификации (modification anomalies). Аномалии могут быть устранены путем разбиения исходного отношения на два или более новых отношения. В большинстве случаев нормализация является более предпочтительной.

таблица магазин сервер база данных

1. Основные понятия

1.1 Что такое реляционная база данных


Реляционная база данных - это тело связанной информации, сохраняемой в двумерных таблицах. Напоминает адресную или телефонную книгу. В книге имеется большое количество входов, каждый из которых соответствует определенной особенности. Для каждой такой особенности, может быть несколько независимых фрагментов данных, например имя, телефонный номер, и адрес. Предположим, что мы должны сформатировать эту адресную книгу в виде таблицы со строками и столбцами. Каждая строка (называемая также записью) будет соответствовать определенной особенности; каждый столбец будет содержать значение для каждого типа данных - имени, телефонного номера, и адреса представляемого в каждой строке. Адресная книга могла бы выглядеть следующим образом:

Имя

Телефон

Адрес

Иванов Иван

+7 (900) 300-20-10

Ул. Мясницкая 5

Петр Петров

+7 (900) 300-50-40

Ул. Ленина 6

Сергей Иванов

+7 (921) 210-20-10

Ул. Строителей 1


То что мы получили, является основой реляционной базы данных, как и было определено в начале этого обсуждения - а именно, двумерной (строка и столбец) таблицей информации. Однако, реляционные базы данных редко состоят из одной таблицы. Такая таблица меньше чем файловая система.

Создав несколько таблиц взаимосвязанной информации, мы сможем выполнить более сложные и мощные операции с нашими данными. Мощность базы данных зависит от связи, которую вы можете создать между фрагментами информации, а не от самого фрагмента информации.

1.2 Что такое SQL


SQL это язык ориентированный специально на реляционные базы данных. Он устраняет много работы, которую мы должны были бы сделать, если бы мы использовали универсальный язык программирования, например C. Чтобы сформировать реляционную базу данных на C, нам необходимо было бы начать с самого начала. Мы должны были бы определить объект - называемый таблицей, которая могла бы расти, чтобы иметь любое число строк, а затем создавать постепенно процедуры для помещения значений в нее и извлечения из них. Если бы мы захотели найти некоторые определенные строки, нам необходимо было бы выполнить по шагам процедуру, подобную следующей:

1. Рассмотреть строку таблицы.

2. Выполнить проверку - является ли эта строка одной из строк, которая нам нужна.

3. Если это так, сохраните ее где-нибудь, пока вся таблица не будет проверена.

4. Проверить, имеются ли другие строки в таблице.

5. Если имеются, возвратитесь на шаг 1.

6. Если строк больше нет, вывести все значения сохраненные в шаге 3.

Конечно, это не фактический набор C команд, а только логика шагов, которые должны были бы быть включены в реальную программу. SQL сэкономит нам все это. Команды в SQL могут работать со всеми группами таблиц как с единым объектом и могут обрабатывать любое количество информации извлеченной или полученной из их, в виде единого модуля.

1.3 Что такое CMS


Система управления содержимым (контентом) (англ. Content management system, CMS) - информационная система или компьютерная программа, используемая для обеспечения и организации совместного процесса создания, редактирования и управления контентом (то есть содержимым).

1.4 Основные функции CMS

Предоставление инструментов для создания содержимого, организация совместной работы над содержимым, управление содержимым: хранение, контроль версий, соблюдение режима доступа, управление потоком документов и т. п.,

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

1.5 Интернет-магазин


Интернет-магазин - сайт, торгующий товарами посредством сети Интернет. Позволяет пользователям онлайн, в своём браузере, сформировать заказ на покупку, выбрать способ оплаты и доставки заказа, оплатить заказ, например, электронными деньгами.

1.6 Что такое сервер MySQL


MySQL - свободная реляционная система управления базами данных. Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB. Продукт распространяется как под GNU General Public License, так и под собственной коммерческой лицензией. Помимо этого, разработчики создают функциональность по заказу лицензионных пользователей. Именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.является решением для малых и средних приложений. Входит в состав серверов WAMP, AppServ, LAMP и в портативные сборки серверов Денвер, XAMPP, VertrigoServ. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей.

Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

1.7 Типы данных MySQL

1.7.1 Числовые типы данных

Тип данных

Объем памяти

Диапазон

Описание

TINYINT (M)

1 байт

от -128 до 127 или от 0 до 255

Целое число. Может быть объявлено положительными с помощью ключевого слова unsigned, тогда эл. Столбца нельзя присвоить отрицательное значение. Необязательные параметр М - кол-во симв. Необязательный атрибут ZEROFILL позволяет по умолчанию заполнить свободные позиции нулями

SMALLINT (M)

2 байта

от -32768 до 32767 или от 0 до 65535

аналогично предыдущему, но с большим диапазоном.

MEDIUMINT (M)

3 байта

от -8388608 до 8388608 или от 0 до 16777215

INT (M) или INTEGER (M)

4 байта

от -2147683648 до 2147683648 или от 0 до 4294967295

BIGINT (M)

8 байт

от - 263 до 263 или от 0 до 264

BOOL или BOOLEAN

1 байт

либо 0, либо 1

Булево значение. 0 - ложь (false), 1 - истина (true)

DECIMAL (M,D) или DEC (M,D) или NUMERIC (M,D)

M + 2 байта

зависят от параметров M и D

Используются для величин повышенной точности, например, для денежных данных. M - количество отводимых под число символов (максимальное значение - 64). D - количество знаков после запятой (максимальное значение - 30). Пример: DECIMAL (5,2) - будет хранить числа от -99,99 до 99,99.

FLOAT (M,D)

4 байта

мин. значение +(-) 1.175494351 * 10-39 макс. значение +(-) 3. 402823466 * 1038

DOUBLE (M,D)

8 байт

мин. значение +(-) 2.2250738585072015 * 10-308 макс. значение +(-) 1.797693134862315 * 10308

аналогично предыдущему, но с большим диапазоном.

1.7.2 Строковые типы данных

Тип данных

Объем памяти

Диапазон

Описание

CHAR (M)

M символов

M символов

Позволяет хранить строку фиксированной длины М. Значение М - от 0 до 65535. Примеры: CHAR (8) - хранит строки из 8 символов и занимает 8 байтов. Например, любое из следующих значений: '', 'Иван','Ирина', 'Сергей' будет занимать по 8 байтов памяти. А при попытке ввести значение 'Александра', оно будет усечено до 'Александ', т.е. до 8 символов.

VARCHAR (M)

L+1 символов

М символов

Позволяет хранить переменные строки длиной L. Значение М - от 0 до 65535. Примеры: VARCHAR (3) - хранит строки максимум из 3 символов, но пустая строка '' занимает 1 байт памяти, строка 'a' - 2 байта, строк 'aa' - 3 байта, строка 'aaa' - 4 байта. Значение более 3 символов будет усечено до 3.

BLOB, TEXT

L+2 символов

216-1 символов

Позволяют хранить большие объемы текста. Причем тип TEXT используется для хранения именно текста, а BLOB - для хранения изображений, звука, электронных документов и т.д.

MEDIUMBLOB, MEDIUMTEXT

L+3 символов

224-1 символов

 Аналогично предыдущему, но с большим размером.

LONGBLOB, LONGTEXT

L+4 символов

232-1 символов


ENUM ('value1', 'value2', ...,'valueN')

1 или 2 байта

65535 элементов

Строки этого типа могут принимать только одно из значений указанного множества. Пример: ENUM ('да', 'нет') - в столбце с таким типом может храниться только одно из имеющихся значений.

SET ('value1', 'value2', ...,'valueN')

до 8 байт

64 элемента

Строки этого типа могут принимать любой или все элементы из значений указанного множества. Пример: SET ('первый', 'второй') - в столбце с таким типом может храниться одно из перечисленных значений, оба сразу или значение может отсутствовать вовсе.

1.7.3 Календарные типы данных

Тип данных

Объем памяти

Диапазон

Описание

DATE

3 байта

от '1000-01-01' до '9999-12-31'

Предназначен для хранения даты. В качестве первого значения указывается год в формате "YYYY", через дефис - месяц в формате "ММ", а затем день в формате "DD". В качестве разделителя может выступать не только дефис, а любой символ отличный от цифры.

TIME

3 байта

от '-838:59:59' до '838:59:59'

Предназначен для хранения времени суток. Значение вводится и хранится в привычном формате - hh:mm:ss, где hh - часы, mm - минуты, ss - секунды. В качестве разделителя может выступать любой символ отличный от цифры.

DATATIME

8 байт

от '1000-01-01 00:00:00' до '9999-12-31 23:59:59'

Предназначен для хранения и даты и времени суток. Значение вводится и хранится в формате - YYYY-MM-DD hh:mm:ss. В качестве разделителей могут выступать любые символы отличные от цифры.

TIMESTAMP

4 байта

от '1970-01-01 00:00:00' до '2037-12-31 23:59:59'

Предназначен для хранения даты и времени суток в виде количества секунд, прошедших с полуночи 1 января 1970 года (начало эпохи UNIX).

YEAR (M)

1 байт

от 1970 до 2069 для М=2 и от 1901 до 2155 для М=4

Предназначен для хранения года. М - задает формат года. Например, YEAR (2) - 70, а YEAR (4) - 1970. Если параметр М не указан, то по умолчанию считается, что он равен 4.




2. Проектирование и создание базы данных

2.1 Таблица категорий товара


Для начала нам нужно создать таблицу категорий товара. Назовем её «cat» (cat - это сокращенно от categories). В таблице cat мы создадим 3 поля для хранение наших данных.

1)      cat_id - порядковые номер или счетчик наших категорий. Тип данных у cat_id мы сделаем tinyint(3), добавим ключевое слово unsigned, чтобы исключить отрицательные числа. Добавим атрибут AUTO_INCREMENT для автоматического инкремента.

2)      cat_name - поля для имени наших категорий. Тип данных varchar(40)

3)      parent_id - поле parent_id указывает на тип категории (Родительская/Дочерняя). Тип поля мы сделаем tinyint(3), добавим ключевое слово unsigned, чтобы исключить отрицательные числа. Также добавим атрибут DEFAULT '0', тем самым скажем серверу, что по умолчанию в это поле мы будем класть значение 0.

Первичный ключ: Поле cat_id

Пояснение: Поле parent_id отвечает за тип категории. Если в поле parent_id значение 0 - значит категория Родительская, иначе значение parent_id равно значению родительской категории, тем самым данная категория становится дочерней.

Теперь мы напишем код SQL для создание таблицы cat в нашей базе данных.

Код:

CREATE TABLE IF NOT EXISTS `cat` (

`cat_name` varchar(40) NOT NULL,

`parent_id` tinyint(3) unsigned NOT NULL DEFAULT '0',KEY (`cat_id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

Результат:

Мы создали в нашей базе данных таблицу категорий товара.

Таблица категорий

Для наглядности наполним таблицу категорий следующим содержимым:

1) Двигатель

1.1) Выхлопная система

1.2)   Карбюратор

.3)     ЦПГ

.4)     КПП

.5)     Прочее

2) Электрика

3)        Ходовая часть

3.1) Колеса

3.2) Тормоза

3.3) Амортизаторы

.4) Вилка, маятник

.5) Прочее

4) Внешний Вид

.1) Сидения

.2) Бак

.3) Бардачки

4.4) Подножки

.5) Дуги

.6) Светотехника

Для этого мы напишем следующий SQL код:

INSERT INTO `cat` (

`cat_id` ,

`cat_name` ,

`parent_id`

)

(1 , 'Двигатель', '0'),

(2 , 'Выхлопная система', '1'),

(3 , 'Карбюратор', '1'),

(4 , 'ЦПГ', '1'),

(5 , 'КПП', '1'),

(6 , 'Прочее', '1'),

(7 , 'Электрика', '0'),

(8 , 'Ходовая часть', '0'),

(9 , 'Колеса', '8'),

(10 , 'Тормоза', '8'),

(11 , 'Амортизаторы', '8'),

(12 , 'Вилка, маятник', '8'),

(13 , 'Прочее', '8'),

(14 , 'Внешний Вид', '0'),

(15 , 'Сидения', '14'),

(16 , 'Бак', '14'),

(17 , 'Бардачки', '14'),

(18 , 'Подножки', '14'),

(19 , 'Дуги', '14'),

(20 , 'Светотехника', '14'),

(21 , 'Прочее', '14');

В результате мы получили наполненную таблицу категорий товара.

Наполненная таблица категорий

2.2 Таблица покупателей


Теперь нам нужно создать таблицу покупателей. Назовем её customers. В таблице customers мы создадим 8 поле для хранение наших данных.

1) customers_id - порядковые номер или счетчик покупателей. Тип данных у customers_id мы сделаем mediumint(10), добавим ключевое слово unsigned, чтобы исключить отрицательные числа. Добавим атрибут AUTO_INCREMENT для автоматического инкремента.

Источник: https://www.bibliofond.ru/detail.aspx?id=787629