Проектирование и реализация базы данных для Видеогалереи на основе единой информационной среды кафедры



Скачать 106.71 Kb.
Дата25.07.2014
Размер106.71 Kb.
ТипПояснительная записка
";

}

}



Пример выполнения соответствующего SQL-запроса:
mysql> SELECT * FROM video WHERE idf IN (SELECT idf FROM files WHERE files.idu=229) AND name='20051117_natalie_imbruglia_concert01' AND idv!=26 ORDER BY name;

Empty set (0.01 sec)


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

Обновление информации о файле (с ID 26) в таблице video:


mysql> UPDATE video SET name='20051117_natalie_imbruglia_concert001', description='Концерт Imbruglia в Москве. 17/11/2005. Отрывок из песни "Impressed".', publication=TRUE WHERE idv=26;

Query OK, 1 row affected (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 0

Удаление файла из таблицы video:

mysql> DELETE FROM video WHERE idv=26;

Query OK, 1 row affected (0.01 sec)

Выборка имени альбома для заданного пользователя (с ID 229) и файла с видео (ID 27):
mysql> SELECT albums.name FROM video_has_alb, video, albums WHERE albums.idu=229 and video.idv=27 and video_has_alb.ida=albums.ida and video_has_alb.idv=video.idv;

+-----------+

| name |

+-----------+

| Seen live |

+-----------+

1 row in set (0.00 sec)

Результаты

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


Выводы

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


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


  1. Профессиональное PHP программирование. Автор(ы): Л. Аргерих, В. Чой, Д. Коггсхол, К. Эгервари, М. Гейслер,3. Гринт, Э. Хилл, К. Хаббард, Д. Мур, Д. О'Деля, Д. Париз,X. Рават, Т. Сани, К. Сколло, Д. Томас, К. Ульман. Перевод: С. Маккавеева. Издательство: Символ-Плюс Год выпуска: 2003

  2. PHP 5. Полное руководство. Автор Джон Коггэолл. Год 2006 Страниц 752.

  3. MySQL. Руководство по изучению языка. Автор Ульман Л. Издательство Питер. Страниц 352. Год издания 2004.

  4. Язык запросов SQL. Учебный курс. Автор Андон Филипп. Издательство Питер. Страниц 416. Год издания 2006.

  5. PHP 5 и MySQL. Библия пользователя. Автор Конверс Т. Издатель Вильямс. Страниц 1216. Год издания 2006.



Министерство образования и науки РФ

Московский государственный институт электроники и математики

Кафедра «Электронно-вычислительной аппаратуры»

Пояснительная записка к курсовой работе

(по дисциплине “Базы данных”)

на тему: Проектирование и реализация базы данных для Видеогалереи на основе единой информационной среды кафедры


Выполнили: студенты группы С-55

Матвеев В.М.

Ковалев Т.А.

Руководитель: д.т.н профессор

Зарудный Д.И.

Москва 2007

Содержание:


Содержание: 2

Аннотация. 3

Техническое задание. 4

Анализ технического задания. 5

MySQL 5

РНР 5


Zend Studio 6

6

Описание предметной области. 7



Предметная область 7

Инфологическая модель. 8

Даталогическая модель. 8

Получение кода SQL 9

Реализация, SQL-запросы 10

Результаты 14

Выводы 15

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


Аннотация.


В курсовой работе решалась задача проектирования и разработки базы данных видео галереи, создания интерфейса к этой базе данных. В качестве программного обеспечения использовалась система управления реляционными базами данных "MySQL". Для создания интерфейса использовался PHPMyAdmin.

Техническое задание.


Реализовать видео галерею на основе базы данных. Спроектировать базу данных и реализовать ее в СУБД MySQL. Реализовать интерфейс к созданной базе данных.

Анализ технического задания.


Для реализации поставленной задачи необходимо использовать некоторое программное обеспечение.

MySQL


MySQL - это система управления базами данных.

База данных представляет собой структурированную совокупность данных. Эти данные могут быть любыми - от простого списка предстоящих покупок до перечня экспонатов картинной галереи или огромного количества информации в корпоративной сети. Для записи, выборки и обработки данных, хранящихся в компьютерной базе данных, необходима система управления базой данных, каковой и является ПО MySQL. Поскольку компьютеры замечательно справляются с обработкой больших объемов данных, управление базами данных играет центральную роль в вычислениях. Реализовано такое управление может быть по-разному - как в виде отдельных утилит, так и в виде кода, входящего в состав других приложений.

MySQL - это система управления реляционными базами данных.

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

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

Программное обеспечение MySQL - это ПО с открытым кодом.

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

Перечислим основные достоинства пакета MySQL:


  • Многопоточность. Поддержка нескольких одновременных запросов.

  • Оптимизация связей с присоединением многих данных за один проход.

  • Записи фиксированной и переменной длины.

  • ODBC драйвер в комплекте с исходным текстом

  • Гибкая система привилегий и паролей.

  • До 16 ключей в таблице. Каждый ключ может иметь до 15 полей.

  • Поддержка ключевых полей и специальных полей в операторе CREATE.

  • Поддержка чисел длинной от 1 до 4 байт (ints, float, double, fixed), строк переменной длины и меток времени.

  • Интерфейс с языками C и perl.

  • Основанная на потоках, быстрая система памяти.

  • Утилита проверки и ремонта таблицы.

  • Все данные хранятся в формате ISO8859_1.

  • Все операции работы со строками не обращают внимания на регистр символов в обрабатываемых строках.

  • Псевдонимы применимы как к таблицам, так и к отдельным колонкам в таблице.

  • Все поля имеют значение по умолчанию. INSERT можно использовать на любом подмножестве полей.

  • Легкость управления таблицей, включая добавление и удаление ключей и полей.

РНР


РНР - это серверный язык создания сценариев, разработанный специально для Web. В НТМL-страницу можно внедрить код РНР, который будет выполняться при каждом ее посещении. Код РНР интерпретируется Web-сервером и генерирует HTML или иной вывод, наблюдаемый посетителем страницы.

Разработка РНР была начата в 1994 г. и вначале выполнялась одним человеком, Расмусом Лердортом (Rasmus Lerdort). Этот язык был принят рядом талантливых людей и претерпел три основных редакции, пока не стал широко используемым и зрелым продуктом, с которым мы имеем дело сегодня.

РНР - это продукт с открытым исходным кодом (Open Source). У пользователя имеется доступ к исходному коду. Его можно использовать, изменять и свободно распространять другим пользователям или организациям.

Первоначально РНР являлось сокращением от Personal Ноmе Page (Персональная начальная страница), но затем это название было изменено в соответствии с рекурсивным соглашением по наименованию GNU (GNU = Gnu's Not Unix) и теперь означает РНР Hypertext Preprocessor (Препроцессор гипертекста РНР). В настоящее время основной версией РНР является пятая. Эта версия характеризуется несколькими существенными усовершенствованиями языка.

Преимущества РНР.

К числу конкурентов РНР относятся Perl, Active Server Pages (ASP) от Microsoft, Java Server Pages (JSP) и Allaire Cold Fusion.

РНР обладает множеством преимуществ по сравнению с этими продуктами, в числе которых:


  • Высокая производительность

  • Наличие интерфейсов ко многим различным системам баз данных

  • Встроенные библиотеки для выполнения многих общих задач, связанных с Web.

  • Низкая стоимость

  • Простота изучения и использования

  • Переместимость

  • Доступность исходного кода

Zend Studio


Продукт Zend Studio – это признанное тысячами разработчиков во всем мире решение для создания приложений PHP. Zend Studio предоставляет интегрированную среду разработки и позволяет немедленно приступить к созданию приложений. Пользователям предоставляются надежные средства для разработки, отладки и развертывания приложений на всех распространенных платформах (включая Windows, Linux и Mac).
При инсталляции Zend Studio автоматически устанавливаются все необходимые компоненты полноценной клиент-серверной среды разработки, в которую входит и полноценный сервер HTTP/PHP с поддержкой расширений для разработчика.
Zend Development Environment – это уникальный инструмент, сочетающий в себе возможности редактора, отладчика и менеджера проектов. С помощью этого средства имеется возможность создавать программный код, управлять им и осуществлять его отладку. Также возможно подключаться к установленному серверу или серверному компоненту Zend Studio для отладки программного кода в его естественной среде.
Zend Information Center заметно отличается от стандартных справочных систем. Пользователям предлагается контекстная справочная система, включающая в себя учебники по PHP и исчерпывающий список справочных разделов, охватывающих все аспекты работы Zend Studio. При работе с Zend Information Center предлагается широкий выбор справочных разделов, для консультации по любому интересующему вопросу.
Zend Server Center – это специальная консоль для настройки PHP. Пользователям предоставляется информация о назначении каждого из параметров настройки и о влиянии этих параметров на работу PHP, пользователи также смогут настроить списки контроля доступа Zend Debug Server.

Zend Server включает в себя предварительно скомпилированные версии PHP и Apache, обеспечивающие быструю установку сервера разработки.


Описание предметной области.

Предметная область


Видеогалерея должна позволять пользователям закачивать свои видеофайлы на FTP-сервер, пользуясь единым файловым пространством кафедры ЭВА, а также иметь возможность перекодировать видео, управлять альбомами и публикациями видео на сайте видеогалереи.

Поэтому можно выделить следующие сущности и их атрибуты.




  1. Users

Хранятся данные о пользователях галереи. Это имя пользователя, его год выпуска, а также его уникальный идентификационный номер в системе.




  1. Files

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




  1. Video

К аттрибутам относятся простейшие свойства видео: имя, описание, дата создания, аудио и видео битрейт, количество кадров в секунду, промежуток между ключевыми кадрами, частота дискретизации.




  1. Albums

Содержится информация о пользовательских альбомах.



Инфологическая модель.





Даталогическая модель.

RUsers(idu, name, year)

RFiles(idf, name, size, format, idu)

RVideo(idv, name, description, duration, date, publication, fps, keyint, arbitrate, vbitrate, srate, idf)

RAlbums(ida, name, description, date)

RAlbumsHasVideo(ida, idv)




Получение кода SQL


CREATE TABLE users (

idu INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,

name VARCHAR(50) NOT NULL,

year YEAR NOT NULL,

PRIMARY KEY(idu)

)

ENGINE = MYISAM



CHARACTER SET utf8 COLLATE utf8_general_ci;

CREATE TABLE files (

idf INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,

idu INTEGER UNSIGNED NOT NULL,

name VARCHAR(100) NOT NULL,

size DOUBLE UNSIGNED,

format VARCHAR(5) NOT NULL,

PRIMARY KEY(idf, idu)

)

ENGINE = MYISAM



CHARACTER SET utf8 COLLATE utf8_general_ci;

CREATE TABLE video (

idv INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,

idf INTEGER UNSIGNED NOT NULL,

name VARCHAR(100) NOT NULL,

description TEXT NULL,

duration INTEGER UNSIGNED NULL,

date DATE NULL,

publication BOOL NOT NULL DEFAULT 0,

fps INT(2) UNSIGNED DEFAULT 0,

keyint INT(3) UNSIGNED DEFAULT 0,

abitrate INT(3) UNSIGNED DEFAULT 0,

vbitrate INT(4) UNSIGNED DEFAULT 0,

srate INT(5) UNSIGNED DEFAULT 0,

PRIMARY KEY(idv, idf)

)

ENGINE = MYISAM



CHARACTER SET utf8 COLLATE utf8_general_ci;

CREATE TABLE albums (

ida INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,

idu INTEGER UNSIGNED NOT NULL,

name VARCHAR(100) NOT NULL,

description TEXT NULL,

PRIMARY KEY(ida, idu)

)

ENGINE = MYISAM



CHARACTER SET utf8 COLLATE utf8_general_ci;

CREATE TABLE video_has_alb (

idu INTEGER UNSIGNED NOT NULL,

idv INTEGER UNSIGNED NOT NULL,

ida INTEGER UNSIGNED NOT NULL,

PRIMARY KEY(idu, idv, ida)

)

ENGINE = MYISAM



CHARACTER SET utf8 COLLATE utf8_general_ci;

Реализация, SQL-запросы

Функция получения информации о пользователе на языке программирования PHP:


function getUserInfo ($database_server, $database_user, $database_password, $database_name, $user) {

$mysql = new Mysql($database_server, $database_user, $database_password);

$mysql->select($database_name);

$query_1 = $mysql->query("SELECT * FROM users WHERE name='".$user."'");

if (mysql_num_rows($query_1) == 0) {

return 0;

} else {

$result_1 = mysql_fetch_object($query_1);

return $result_1;

}

unset($mysql);



}

Пример выполнения соответствующего SQL-запроса:


mysql> SELECT * FROM users WHERE name='Dmitry.Shurupov';

+-----+-----------------+------+

| idu | name | year |

+-----+-----------------+------+

| 229 | Dmitry.Shurupov | 2009 |

+-----+-----------------+------+

1 row in set (0.01 sec)

Выборка всех пользователей, у которых есть хотя бы одно опубликованное видео:


mysql> SELECT DISTINCT users.idu, users.year, users.name FROM users, video WHERE video.idu=users.idu AND video.publication=1;

+-----+------+-------------------+

| idu | year | name |

+-----+------+-------------------+

| 223 | 2009 | Andrey.Rudakov |

| 218 | 2009 | Andrey.Gavrilenko |

| 229 | 2009 | Dmitry.Shurupov |

| 236 | 2009 | Ruslan.Nurullin |

+-----+------+-------------------+

4 rows in set (0.00 sec)

Выборка идентификаторов всех альбомов пользователя с ID 223, содержащих хотя бы одно опубликованное видео:
mysql> SELECT DISTINCT ida FROM video_has_alb, video WHERE video_has_alb.idu=223 AND video_has_alb.idv=video.idv AND video.publication=1;

+-----+


| ida |

+-----+


| 37 |

+-----+


1 row in set (0.00 sec)

Выборка информации о 5-и первых (по названию) видео, опубликованных в альбоме с ID 37:


mysql> SELECT video.* FROM video, video_has_alb WHERE video_has_alb.idv=video.idv AND video_has_alb.ida=37 ORDER BY video.name LIMIT 5;

+-----+-----+----------------------------+-----------------------------+----------+------+-------------+------+--------+----------+----------+-------+-----+

| idv | idf | name | description | duration | date | publication | fps | keyint | abitrate | vbitrate | srate | idu |

+-----+-----+----------------------------+-----------------------------+----------+------+-------------+------+--------+----------+----------+-------+-----+

| 13 | 4 | Crawling | Описание видео | NULL | NULL | 1 | 30 | 300 | 64 | 300 | 22050 | 223 |

| 14 | 5 | Cure For The Itch | | NULL | NULL | 1 | 30 | 300 | 64 | 300 | 22050 | 223 |

| 12 | 6 | In The End | | NULL | NULL | 1 | 30 | 300 | 64 | 300 | 22050 | 223 |

| 15 | 7 | One Step Closer | | NULL | NULL | 1 | 30 | 300 | 64 | 300 | 22050 | 223 |

| 20 | 10 | One Step Closer (NPA 2001) | | NULL | NULL | 1 | 25 | 300 | 128 | 390 | 44100 | 223 |

+-----+-----+----------------------------+-----------------------------+----------+------+-------------+------+--------+----------+----------+-------+-----+

5 rows in set (0.00 sec)

Выборка имени файла для видео по его идентификатору (для видео с ID 13):


mysql> SELECT files.name FROM files, video WHERE idv=13 AND video.idf=files.idf;

+--------------+

| name |

+--------------+

| Crawling.avi |

+--------------+

1 row in set (0.00 sec)

Код для удаления альбома на языке программирования PHP:


if (isset($_POST['delete'])) {

$mysql = new Mysql($database_server, $database_user, $database_password);

$mysql->select($database_name);

$query_1 = $mysql->query("DELETE FROM albums WHERE idu=".$_SESSION['idu']." AND ida=".$_POST['ida']."");

unset($mysql);

}

Пример выполнения соответствующего SQL-запроса (удаление альбома #42 пользователем #229):


mysql> DELETE FROM albums WHERE idu=229 AND ida=42;

Query OK, 1 row affected (0.01 sec)

Код для добавления нового альбома на языке программирования PHP:
if ($dbflag == 0) {

$mysql = new Mysql($database_server, $database_user, $database_password);

$mysql->select($database_name);

$query_1 = $mysql->query("INSERT INTO albums (idu, name, description, date) VALUES ('".$_SESSION['idu']."','".mysql_real_escape_string(stripslashes($_POST['name']))."','".mysql_real_escape_string(stripslashes($_POST['description']))."', '".date("Ymd")."')");

unset($mysql);

}

Пример выполнения соответствующего SQL-запроса:


mysql> INSERT INTO albums (idu, name, description, date) VALUES (229, 'test', 'новый альбом', '2006-12-26');

Query OK, 1 row affected, 1 warning (0.01 sec)

Код для добавления нового альбома на языке программирования PHP:
if ($dbflag == 0) {

$query_1 = $mysql->query("UPDATE albums SET name='".mysql_real_escape_string(stripslashes($_POST['name']))."',description='".mysql_real_escape_string(stripslashes($_POST[

'description']))."' WHERE idu=".$_SESSION['idu']." AND ida=".$_POST['ida']."");

}

Пример выполнения соответствующего SQL-запроса:


mysql> UPDATE albums SET name='my test album',description='новое описание' WHERE idu=229 AND ida=42;

Query OK, 1 row affected (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 0

Код для проверки существования файла с указанным пользователем именем в таблице video на языке программирования PHP:


if (isset($_POST['update'])) {

$query_1 = $mysql->query("SELECT * FROM video WHERE idf IN (SELECT idf FROM files WHERE files.idu=".$_SESSION['idu'].") AND name='".mysql_real_escape_string(stripslashes(

$_POST['name']))."' AND idv!=".$_POST['idv']." ORDER BY name");

if (mysql_num_rows($query_1) != 0) {

$msg = "

Ввидео с таким названием существует!

Похожие:

Проектирование и реализация базы данных для Видеогалереи на основе единой информационной среды кафедры iconВ статье рассмотрены основные подходы к созданию единой образовательной информационной среды для общеобразовательных учебных заведений Брянской области на основе среды «км-школа» (ооо «Кирилл и Мефодий»)
Создание единой образовательной информационной среды для общеобразовательных учебных заведений брянщины на основе программного комплекса...
Проектирование и реализация базы данных для Видеогалереи на основе единой информационной среды кафедры iconПрограмма развития информационной среды общеобразовательного учреждения проектирование и реализация
Программа развития информационной среды общеобразовательного учреждения. Проектирование и реализация / Под ред. А. Л. Семенова, Е....
Проектирование и реализация базы данных для Видеогалереи на основе единой информационной среды кафедры iconДокументация Единой информационной среды кафедры эва. From WikiTory

Проектирование и реализация базы данных для Видеогалереи на основе единой информационной среды кафедры iconПрактическая реализация построения распределенной неоднородной базы данных н. А. Лашкин, В. Г. Орчиков
В данной работе рассматриваются возможности построения распределённой sql базы данных на основе субд различных производителей
Проектирование и реализация базы данных для Видеогалереи на основе единой информационной среды кафедры iconПрограмма как формализованное описание процесса обработки данных
Набор данных, содержащихся в какой-либо момент в информационной среде, будем называть состоянием этой информационной среды. Процесс...
Проектирование и реализация базы данных для Видеогалереи на основе единой информационной среды кафедры iconПроектирование базы данных
В результате появились модели баз данных, методики проектирования баз данных, специальное программное обеспечение для работы с базами...
Проектирование и реализация базы данных для Видеогалереи на основе единой информационной среды кафедры iconМногомерная модель базы данных и ее реализация на основе Microsoft sql server
Поэтому не удивительно то внимание, которое сегодня уделяется средствам реализации и концепциям построения информационных систем,...
Проектирование и реализация базы данных для Видеогалереи на основе единой информационной среды кафедры iconОформление веб-ресурсов Единой информационной среды кафедры 2008
...
Проектирование и реализация базы данных для Видеогалереи на основе единой информационной среды кафедры iconМ. М. Бежанова, Л. А. Голубева, Л. А. Москвина
Проектирование визуальных интерфейсов и приложений баз данных на основе среды delphi
Проектирование и реализация базы данных для Видеогалереи на основе единой информационной среды кафедры iconКурсовой проект " Проектирование и реализация абстракций типов данных"
Задание: разработать спецификацию интерфейса (абстракцию) типа данных в соответствии со своим вариантом. Для этого
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org