ФГБОУ ВПО « ДАГЕСТАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ » Факультет Информатики и Управления Кафедра ВТ КУРСОВАЯ РАБОТА по дисциплине « БАЗЫ ДАННЫХ » на тему: «База данных футбольного клуба Barcelona» Выполнил: СТ-Т ГР. 941 СПЕЦ. ПОВТИАС АБДУЛАЗИЗОВ А.А Принял: ст-й пр-ль, к.т.н. Джанмурзаев А.А Аннотация В данной курсовой работе рассматриваются основные концепции построения реляционных СУБД, базовые принципы проектирования данных, а также то, какие объекты могут быть созданы в базах данных. В данной работе рассматривается БД «Футбольный клуб Барселона». Курсовая работа содержит 24 страницы , 6 рисунков. Техническое задание Разработать базу данных футбольного клуба «Барселона» с использованием РСУБД – MySQL и скриптового языка веб-программирования –PHP. Содержание Введение…………………………………………………………………4 Техническое задание…………………………………………………… Инфологическая модель…………………………….………………….8 Даталогическая модель……………………………………..…..………9 Структура базы данных………………………….…………………..…10 Листинг программных модулей……………………………….……….11 Отладка программы……………………………………………………..15 Заключение…………………………………………………….…..…….17 Список литературы…………………………………………….………..18 Введение Базы Данных , способы представления , модели данных. Базы Данных (БД) представляют собой совокупность данных, структурированных определенным образом по определенной тематике, применяющихся в различных отраслях экономики, промышленности, бизнеса и науки. Скорость доступа к нужной информации, оперативность ее получения определяют, в конечном итоге, успешное ведение бизнеса и уменьшают затраты на соответствующие статьи доходов. Разработаны методы, которые облегчают работу с большим объемом данных: создание баз данных, выполнение поиска, редактирование, извлечение различных выборок, а также проведение анализа данных и оформления расчетов, которые содержат итоговые документы и данные в виде таблиц, диаграмм и графиков. Эти методы реализуются с помощью комплекса программных средств, обеспечивающих работу с БД - системой управления базой данных (СУБД). Известно много программных продуктов, позволяющих создавать и работать с БД, например, Access, Clipper, Excel и другие. Среди большого разнообразия программ наибольшей популярностью пользуется СУБД FoxPro, которая по своим характеристикам удовлетворяет самым высоким требованиям, предъявляемым к такого типа системам как по уровню и объему, так и по скорости обработки информации. На данный момент разработано и широко используется Visual FoxPro для Windows версий 3.0 и 5.0. Однако, работа с этими пакетами для непрограммистов представляет собой довольно сложную задачу. Поэтому для создания БД для пользователей, имеющих небольшой опыт в программировании , очень удачными являются версии 2.5 и 2.6 под Windows и 2.0 под DOS Инфологическая модель отображает реальный мир в некоторые понятные человеку концепции, полностью независимые от параметров среды хранения данных. Существует множество подходов к построению таких моделей: графовые модели, семантические сети, модель "сущность-связь" и т.д.. Наиболее популярной из них оказалась модель "сущность-связь",которая будет рассмотрена далее. Инфологическая модель должна быть отображена в компьютеро-ориентированную даталогическую модель, "понятную" СУБД. В процессе развития теории и практического использования баз данных, а также средств вычислительной техники создавались СУБД, поддерживающие различные даталогические модели. Сначала стали использовать иерархические даталогические модели. Простота организации, наличие заранее заданных связей между сущностями, сходство с физическими моделями данных позволяли добиваться приемлемой производительности иерархических СУБД на медленных ЭВМ с весьма ограниченными объемами памяти. Но, если данные не имели древовидной структуры, то возникала масса сложностей при построении иерархической модели и желании добиться нужной производительности. Сетевые модели также создавались для мало ресурсных ЭВМ. Это достаточно сложные структуры, состоящие из "наборов" – поименованных двухуровневых деревьев. "Наборы" соединяются с помощью "записей-связок", образуя цепочки и т.д. При разработке сетевых моделей было выдумано множество "маленьких хитростей", позволяющих увеличить производительность СУБД, но существенно усложнивших последние. Прикладной программист должен знать массу терминов, изучить несколько внутренних языков СУБД, детально представлять логическую структуру базы данных для осуществления навигации среди различных экземпляров, наборов, записей и т.п. Один из разработчиков операционной системы UNIX сказал "Сетевая база – это самый верный способ потерять данные". Сложность практического использования иерархических и и сетевых СУБД заставляла искать иные способы представления данных. В конце 60-х годов появились СУБД на основе инвертированных файлов, отличающиеся простотой организации и наличием весьма удобных языков манипулирования данными. Однако такие СУБД обладают рядом ограничений на количество файлов для хранения данных, количество связей между ними, длину записи и количество ее полей. Физическая организация данных оказывает основное влияние на эксплуатационные характеристики БД. Разработчики СУБД пытаются создать наиболее производительные физические модели данных, предлагая пользователям тот или иной инструментарий для поднастройки модели под конкретную БД. Разнообразие способов корректировки физических моделей современных промышленных СУБД не позволяет рассмотреть их в этом разделе. Инфологическая модель данных. Сущность-связь. Основные понятия Цель инфологического моделирования – обеспечение наиболее естественных для человека способов сбора и представления той информации, которую предполагается хранить в создаваемой базе данных. Поэтому инфологическую модель данных пытаются строить по аналогии с естественным языком ( последний не может быть использован в чистом виде из-за сложности компьютерной обработки текстов и неоднозначности любого естественного языка).Основными конструктивными элементами инфологических моделей являются сущности, связи между ними и их свойства (атрибуты). Сущность – любой различимый объект (объект, который мы можем отличить от другого), информацию о котором необходимо хранить в базе данных. Сущностями могут быть люди, места, самолеты, рейсы, вкус, цвет и т.д. Необходимо различать такие понятия, как тип сущности и экземпляр сущности. Понятие тип сущности относится к набору однородных личностей, предметов, событий или идей, выступающих как целое. Экземпляр сущности относится к конкретной вещи в наборе. Атрибут – поименованная характеристика сущности. Его наименование должно быть уникальным для конкретного типа сущности, но может быть одинаковым для различного типа сущностей. Абсолютное различие между типами сущностей и атрибутами отсутствует. Атрибут является таковым только в связи с типом сущности. В другом контексте атрибут может выступать как самостоятельная сущность. Ключ – минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности. Минимальность означает, что исключение из набора любого атрибута не позволяет идентифицировать сущность по оставшимся. Связь – ассоциирование двух или более сущностей. Если бы назначением базы данных было только хранение отдельных, не связанных между собой данных, то ее структура могла бы быть очень простой. Однако одно из основных требований к организации базы данных – это обеспечение возможности отыскания одних сущностей по значениям других, для чего необходимо установить между ними определенные связи. А так как в реальных базах данных нередко содержатся сотни или даже тысячи сущностей, то теоретически между ними может быть установлено более миллиона связей. Наличие такого множества связей и определяет сложность инфологических моделей. О построении инфологической модели. Читатель, познакомившийся лишь с материалом выше, не сможет правильно воспринять и оценить тех советов и рекомендаций по построению хорошей инфологической модели, которые десятилетиями формировались крупнейшими специалистами в области обработки данных. Для этого надо, по крайней мере, изучить последующие материалы. В идеале же необходимо, чтобы читатель предварительно реализовал хотя бы один проект информационной системы, предложил его реальным пользователям и побыл администратором базы данных и приложений столь долго, чтобы осознать хотя бы небольшую толику проблем, возникающих из-за недостаточно продуманного проекта. Опыт автора и всех знакомых ему специалистов по информационным системам показывает, что любые теоретические рекомендации воспринимаются всерьез лишь после нескольких безрезультатных попыток оживления неудачно спроектированных систем. (Хотя есть и такие проектировщики, которые продолжают верить, что смогут реанимировать умирающий проект с помощью изменения программ, а не инфологической модели базы данных.) Основная сложность восприятия рекомендаций, приведенных в четвертой главе и приложении Б, чисто психологического плана. Действительно, для определения перечня и структуры хранимых данных надо собрать информацию о реальных и потенциальных приложениях, а также о пользователях базы данных, а при построении инфологической модели следует заботиться лишь о надежности хранения этих данных, напрочь забывая о приложениях и пользователях, для которых создается база данных. Это связано с абсолютно различающимися требованиями к базе данных прикладных программистов и администратора базы данных. Первые хотели бы иметь в одном месте (например, в одной таблице) все данные, необходимые им для реализации запроса из прикладной программы или с терминала. Вторые же заботятся о исключении возможных искажений хранимых данных при вводе в базу данных новой информации и обновлении или удалении существующей. Для этого они удаляют из базы данных дубликаты и нежелательные функциональные связи между атрибутами, разбивая базу данных на множество маленьких таблиц. Так как многолетний мировой опыт использования информационных систем, построенных на основе баз данных, показывает, что недостатки проекта невозможно устранить любыми ухищрениями в программах приложений, то опытные проектировщики не позволяют себе идти навстречу прикладным программистам (даже тогда, когда они сами являются таковыми). Инфологическая модель В общем виде инфологическая модель в моей работе будет выглядеть следующим образом: Футболист Футбольный клуб Следует заметить, что между классами “Футбольный клуб” и “Футболист” установлена связь 1:М (то есть “один – ко – многим “) Футбольный клуб Футболист Тренерский штаб Ф.И.О. Дата рождения Место рождения Рост Вес Возраст Номер Национальность Позиция Президент Главный тренер Датологическая модель. Датологическая модель является моделью логического уровня и представляет собой отображение логических связей между элементами данных без рассмотрения их содержания и среды хранения. Класс “Футбольный клуб - футболист ” 2 поля Футбольный клуб Футболист Класс “Футболист – данные о нем” 9 полей Ф.И.О. Дата рождения Место рождения Рост Возраст Номер Национальность Позиция Вес Структура базы данных Таблица `player` - предназначен для хранения данных о игроках клуба и сдержит следующие поля: name - имя игрока number – номер country - страна position – позиция на поле yearcont – год подписания контракта longcont – год расторжения контракта lastclub – предыдущий клуб data —год рождения Листинг программных модулей <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Документ без названия</title> </head> <?php $db = mysql_connect("localhost","general1","123321"); mysql_select_db("barcelona",$db); ?> <body> </body> </html> <?php include ("db.php"); #mysql_set_charset( "utf8", $db ); mysql_query("set names 'utf8'"); $str = $_GET[pole]; $res = mysql_query("SELECT * from igrok where id=$str", $db); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>ФК БАРСЕЛОНА</title> <link href="css/templatemo_style.css" rel="stylesheet" type="text/css" /> <script src="js/jquery-1.2.6.min.js" type="text/javascript"></script> <script src="js/jquery.easing.1.3.js" type="text/javascript"></script> <script src="js/jquery.kwicks-1.5.1.pack.js" type="text/javascript"></script> <script type="text/javascript"> $().ready(function() { $('.kwicks').kwicks({ max : 710, spacing : 0, sticky: true, }); }); </script> <script type="text/javascript" src="js/jquery-1-4-2.min.js"></script> <link rel="stylesheet" href="css/slimbox2.css" type="text/css" media="screen" /> <script type="text/JavaScript" src="js/slimbox2.js"></script> <style type="text/css"> #sostav_link { color: #00C; } </style> <link href="css/style.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="templatemo_wrapper"> <div id="templatemo_main"> <div id="site_title"> <h1><a href="http://www.templatemo.com">Free CSS Templates</a></h1> </div> <div id="templatemo_content"> <ul class="kwicks"> <li id="home"><span class="header"></span> <div class="inner"> <h2>Добро пожаловать!!!</h2> <p><em>Добро пожаловать на сайт футбольного клуба "Барселона".</em></p> <table border="1" width="600" cellpadding="10"> <tr align="center"><th>Команда</th><th>Команда</th><th>Счет</th><th>Время проведения</th></tr> <tr align="center"><td>FC Barcelona</td><td>Bayern Munich</td><td>2 - 0</td><td> Wed 07/27/201120:45</td></tr> <tr align="center"><td>FC Barcelona</td><td>Manchester United</td><td>1 - 2</td><td>Sun 07/31/201101:00</td></tr> <tr align="center"><td>Girona</td><td>FC Barcelona</td><td>1 - 2 </td><td>Mon 08/ 8/2011</td></tr> <tr align="center"><td>Espanyol</td><td>FC Barcelona</td><td>3 - 0 </td><td>Tue 08/ 9/2011</td></tr> <tr align="center"><td>Real Madrid</td><td>FC Barcelona</td><td> 2 - 2 </td><td>Sun 08/14/201122:00</td></tr> <tr align="center"><td>FC Barcelona</td><td>Real Madrid</td><td>3 - 2 </td><td>Wed 08/17/201123:00</td></tr> <tr align="center"><td>FC Barcelona</td><td>Nápoles</td><td>5 - 0 </td><td>Mon 08/22/2011</td></tr> </table> </div> </li> <li id="about"><span class="header"></span> <div class="inner"> <h2>ФК БАРСЕЛОНА</h2> <p><img src="images/5452347.jpg" width="278" height="248" align="right" />Футбольный клуб «Барселона» (исп. Futbol Club Barcelona и кат. Futbol Club Barcelona), известен также как «Ба?рса» (исп. Barca и кат. Barca) — каталонский футбольный клуб из одноимённого города, один из лучших в Испании и в мире. Основан в 1899 году группой швейцарских, британских, испанских и каталонских футболистов во главе с Жоаном Гампером. Клуб стал одним из символов Каталонии, отсюда происходит и фраза — El Barca es mas que un club («Барса» — это больше, чем просто клуб). Поклонники ФК «Барселона» также известны как «кулес» (cules), в мае 2006 года число зарегистрированных членов клуба составило 140 000 человек[источник не указан 155 дней].<br /> Представители «Барселоны» вместе с представителями мадридского «Реала» и «Атлетика» из Бильбао стояли у истоков образования Примеры. При этом «Барселона» входит в число трёх команд, не покидавших высший испанский дивизион. Другими двумя являются всё те же «Реал Мадрид» и «Атлетик Бильбао»<br /> </p> </div> </li> <li id="social"><span class="header"></span> <div class="inner"> <h2>Состав клуба</h2> <div id="left_sostav"> <img src="/images/1.jpg" alt="команда" border="0" name="foot" width="590" height="350" align="left" /> <p><a href="http://barcelona.ru/sostav.php?pole=1" >Состав команды</a></p> </div> </div> </li> <li id="portfolio"><span class="header"></span> <div class="inner"> <h2>Галерея</h2> <ul id="gallery"> <li><a href="images/portfolio/01l.jpg" rel="lightbox[portfolio]" title="Curabitur facilisis auctor risus, eget lacinia leo feugiat ac."><img src="images/portfolio/01.jpg" alt="Image 01" /></a></li> <li><a href="images/portfolio/02l.jpg" rel="lightbox[portfolio]" title="Nulla varius laoreet tellus, non volutpat mi iaculis a."><img src="images/portfolio/02.jpg" alt="Image 02" /></a></li> <li><a href="images/portfolio/03l.jpg" class="no_margin_right" rel="lightbox[portfolio]" title="Vestibulum euismod mi et massa volutpat lobortis."><img src="images/portfolio/03.jpg" alt="Image 03" /></a></li> <li><a href="images/portfolio/04l.jpg" rel="lightbox[portfolio]" title="Quisque volutpat nunc a felis lobortis aliquet."><img src="images/portfolio/04.jpg" alt="Image 04" /></a></li> <li><a href="images/portfolio/05l.jpg" rel="lightbox[portfolio]" title="Nullam dictum enim et quam posuere dapibus."><img src="images/portfolio/05.jpg" alt="Image 05" /></a></li> <li><a href="images/portfolio/06l.jpg" class="no_margin_right" rel="lightbox[portfolio]" title="Phasellus condimentum nisi et mi feugiat dapibus."><img src="images/portfolio/06.jpg" alt="Image 06" /></a></li> </ul> </div> </li> <li id="contact"><span class="header"></span> <div class="inner"> <h2>Контактная информация</h2> <p>Вы можете оптравить нам письмо при помощи формы обратной связи</p> <h4>Отправить письмо!</h4> <div id="contact_form" class="col_w280 float_l"> <form method="post" name="contact" action="#"> <label for="author">Имя:</label> <input type="text" id="author" name="author" class="required input_field" /> <div class="cleaner h10"></div> <label for="email">Email:</label> <input type="text" id="email" name="email" class="validate-email required input_field" /> <div class="cleaner h10"></div> <label for="text">Сообщение:</label> <textarea id="text" name="text" rows="0" cols="0" class="required"></textarea> <div class="cleaner h10"></div> <input type="submit" value="Отправить" id="submit" name="submit" class="submit_btn float_l" /> <input type="reset" value="Очистка" id="reset" name="reset" class="submit_btn float_r" /> </form> </div> <div class="col_w280 float_r"> <h4>Mailing Address</h4> <h6><strong>Группа У941</strong></h6> 240-480 Fusce nec ante at odio blandit, <br /> In vitae lacus in purus interdum, 18760<br /> Ullamcorper mattis magna non<br /><br /> <strong>Phone:</strong> 010-050-1050<br /> <strong>Email:</strong> <a href="mailto:info@yoursite.com">info@yoursite.com</a> </div> </div> </li> </ul> </div> <!-- END of content --> </div> <!-- END of templatemo_main --> <div id="templatemo_footer">Copyright © 2048 Your Company Name | <a href="http://www.iwebsitetemplate.com" target="_parent">Website Templates</a> by <a href="http://www.templatemo.com" target="_parent">Free CSS Templates</a></div> </div> <!-- END of templatemo_wrapper --> </body> </html> <?php include ("db.php"); #mysql_set_charset( "utf8", $db ); mysql_query("set names 'utf8'"); if ($_GET[pole]=='') { $str = 1; } else { $str = $_GET[pole]; } $res = mysql_query("SELECT * from igrok where id=$str", $db); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>ФК БАРСЕЛОНА</title> <link href="css/style.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="content"> <div id="header"><p id="header_link"><a href="index.php">Главная</a></p></div> <div id="spisok"> <p color="Red">Список игроков</p> <p><a href="http://barcelona.ru/sostav.php?pole=1" >Лионель Месси</a></p> <p><a href="http://barcelona.ru/sostav.php?pole=2" >Давид Вилья</a></p> <p><a href="http://barcelona.ru/sostav.php?pole=3" >Хави</a></p> <p><a href="http://barcelona.ru/sostav.php?pole=4" >Карлес Пуйоль</a></p> <p><a href="http://barcelona.ru/sostav.php?pole=5" >Виктор Вальдес</a></p> </div> <div id="info"> <?php $row=mysql_fetch_array ($res); $str_path="'images\\foot\\$str.jpg'"; echo "<img src=$str_path width='150' height='150'>"; echo "<div id='qtext'> <h3>Имя : " ,$row[fname], "</h3> <p>Дата рождения : ",$row[date_roj], "</p> <p>Место рождения : ",$row[mesto_roj], "</p> <p>Гражданство : ",$row[grajdan], "</p> <p>Амплуа : ",$row[date_roj], "</p> <p>Клуб : ",$row[club], "</p> <p>Сборная : ",$row[sbornaya], "</p> <p>Рост : ",$row[rost], "</p> <p>Вес : ",$row[ves], "</p> </div>"; echo "<div id='all_text'> <p>Инфо : ",$row[text], "</p> </div>"; ?> </div> </div> </body> </html> Отладка программы Стартовая страница: Галерея: Просмотр изображений: Личная информация об игроках: Заключение В данной курсовой работе были обсуждены основные концепции построения реляционных СУБД, базовые принципы проектирования данных, а также то, какие объекты могут быть созданы в базах данных. При выполнении данного курсового проекта я приобрел навыки в разработке и создании информационно – справочных систем, и в работе с ними. А также приобрел опыт в реализации файлов данных, т.е. файлов в которых хранятся необходимые данные. При написании программы, которая позволяет вводить, удалять данные, выполнять их поиск, не возникло трудностей, так как имелся большой интерес, который помог избежать некоторых сложностей в написании программы. Список использованной литературы 1. Мейер М. Теория реляционных данных – М.: Мир, 1987. 2. А. А. Попов FoxPro 2.5 / 2.6 – М. : Мир, 2000 . 3. Лекции по дисциплине ''Базы данных''.