Пропускай все через сердце
Здравствуйте, ребята, я к вам за советом.
Ситуация такова, в прошлом семестре мы "изучали" SQL Server 2000, там была небольшая база и несколько примеров триггеров. Самостоятельно ничего не писали. По ряду причин ни у кого нет ни малейшего понятия о том, что это вообще такое.
Но в этом семестре нужно писать курсовую, в дальнейшем - усложнять...
Задание таково: разработать некую информационную систему и организовать ряд запросов. Это начало. Вот что мне нужно для этого почитать, чтобы сделать?
Я так поняла, что схему данных, таблицы можно сделать в аксесе, а потом перенести на сервер - вроде так препод говорил.
Ну или можно сразу делать на сервере. То есть я создаю таблицы, связи между ними.
Потом я создаю...триггеры? для выполнения запросов?
что мне корнкретно посмотреть на эту тему? именно синтаксис языка sql? для сервера?
И часть вторая - усложнение. Я знаю, ребята как-то связывали сайт с базой, но я так поняла, тут нужны php и mysql. А можно еще сделать вроде программную оболочку, например, на делфи или си шарп. Вот интересует и то и то. Особенно - второе. Сложно ли это? Как это реализовать? Где почитать?
Направьте в нужное русло, пожалуйста!
Ситуация такова, в прошлом семестре мы "изучали" SQL Server 2000, там была небольшая база и несколько примеров триггеров. Самостоятельно ничего не писали. По ряду причин ни у кого нет ни малейшего понятия о том, что это вообще такое.
Но в этом семестре нужно писать курсовую, в дальнейшем - усложнять...
Задание таково: разработать некую информационную систему и организовать ряд запросов. Это начало. Вот что мне нужно для этого почитать, чтобы сделать?
Я так поняла, что схему данных, таблицы можно сделать в аксесе, а потом перенести на сервер - вроде так препод говорил.
Ну или можно сразу делать на сервере. То есть я создаю таблицы, связи между ними.
Потом я создаю...триггеры? для выполнения запросов?
что мне корнкретно посмотреть на эту тему? именно синтаксис языка sql? для сервера?
И часть вторая - усложнение. Я знаю, ребята как-то связывали сайт с базой, но я так поняла, тут нужны php и mysql. А можно еще сделать вроде программную оболочку, например, на делфи или си шарп. Вот интересует и то и то. Особенно - второе. Сложно ли это? Как это реализовать? Где почитать?
Направьте в нужное русло, пожалуйста!
Для связи MSSQL c сайтом нужен PHP. MySQL - это совершенно отдельный сервер БД.
У PHP есть библиотеки как для работы с MySQL, так и для работы с MSSQL.
Для MySQL в PHP служыит ряд функций, главная из которых - mysql_query(). Она передает запрос в базу и возвращает результат.
Для MSSQL есть аналогичные ф-ии.
Я не уверен, что до конца понял суть вопроса... Ты просто хочешь сделать приложение, работающее с БД ?
Если хочешь, пиши на юмыло или в аську, поговорим подробно.
Ну пока я просто хочу на сервере создать базу и мне необходимо реализовать запросы в виде хранимых процедур, я так понимаю.
А уже потом хорошо бы сделать приложение, работающее с БД - мне кажется, что это звучит страшнее, чем есть на самом деле, хотелось бы просто подробного пошагового))) описания.
Ну или же сайт...правда мне кажется, так мороки больше будет, потому склоняюсь к приложению.
Просто я тут абсолютный чайник, у меня проблема именно в том, что я как корабль в море - не знаю, с чего начать, к чему приступиться и что вообще следуюет делать)
спасибо, я в дальнейшем, когда немного разберусь,напишу)
сильной разницы нет, есть свои особенности, но если уже начала ковыряться в MS, о лучше в другие дебри и не лезть) чтоб лишний раз не путаться
Разница между MySQL и MSSQL, безусловно, есть - это два разных программных продукта (хоть и диалекты SQL у них очень мало различаются, по крайней мере, в азах).
Если дело такое, что тебе надо хоть что-то, то надо разобраться для начала, какой софт есть на сервере.
Если тебя не ограничивают в выборе... Что ж, тогда я бы выбрал PHP+MySQL.
Т.е. язык программирования PHP, на котором делаются веб-сайты. НА нем можно написать простой обозреватель баз данных - это делается весьма просто.
База данных MySQL полностью бесплатна, есть на 99.9% процентах хостингов, даже на бесплатных.
Если не хочешь макаться в дела с хостингами - я тебе могу дать маленький хостинг и помогу зарегать для него бесплатный доменчик.
Насчет хранимых процедур...
Т.к. мой профиль все-таки не "программист баз данных", то наличие таковых стало для меня открытием. Почитал - понравилось, ничего сложного.
Вообще говоря, если в твоем задании на курсовую нету требования к использованию хранимых подпрограмм, то можно делать и без них.
В целом, пошаговая инструкция выглядит так...
1. Создается база данных.
2. В ней создаются таблицы таким образом, чтобы они как можно логичнее хранили в себе информацию, которую ты собираешься в них держать.
3. Создается приложение-обозреватель баз данных (на том же PHP). Приложение передает в БД запросы и получает результаты. Оно может добавлять, изменять/удалять, выбирать информацию из базы данных.
Допустим, у тебя есть некий каталог товаров магазина.
У товаров есть следующие х-ки:
1. Уникальный идентификационный номер (если нет - назначаем автоматически).
2. Наименование.
3. Цена.
4. Вес.
5. Цвет.
6. Наличие/отсутсвие на складе.
7. Страна-изготовитель.
8. Фирма-изготовитель.
9. Категории, к которым товар относится (напр. Холодильник - бытовая техника/электроприбор, средство для мытья кастрюль - бытовая химия, бумага - канцелярские принадлежности / расходные материалы).
10. Описание.
На основании этого строим таблицу goods из девяти полей.
id - Тип INT, длинна... Если речь идет об абстрактной базе (то есть не настоящего магазина) то 3 хватит. Если от широкой души, то 11.
name - Наименование товара. VARCHAR длинной 255.
price - Цена. Цена - это десятичная дробь с двумя символами после точки (запятой).предположим, что самый дорогой товар в теории может стоить 10000. Тогда нам нужно поле типа FLOAT длинны (7, 2) (т.е. ВЫсего 7 цифр, из которых 2 - после точки).
weight - Пусть будет, допустим, INT (11). Будем держать вес в граммах.
color - Здесь сойдет VARCHAR(6) - цвет держать неплохо бы в шестнадцатиричном формате.
isthere - Наличие/отсутсвие на склап. INT(1). Если там 1 - присутствует, если 0 - отсутсвует.
7. country - Страна-изготовитель. Здесь логично сделать связь типа "многие к одному", вынеся в отдельную таблицу countries страны-производители, а в поле country таблицы goods (пишется goods.country) держать только id строки из таблицы countries, в которой содержится инфа об этой стране, потому INT(11). Альтернативный вариант: держать некий код страны (UA, RU и т.д.), или даже её название (Украина, Россия и т.д.) непосредственно в поле goods.country, сделав его для этого VARCHAR, например, (20). Но это крайне тупорыло - поиск по этому полю в базе будет создавать намного большие нагрузки, и работать очень медленно. Да и, например, вывести список всех стран в приложении-обозревателе, чтобы в подборе отобразить только украинские или немецкие холодильники будет необходимо реализовывать уже более сложным запросом.
8. brand - Фирма-изготовитель. Тут аналогично пункту 7: создаем поле brand, в него запихиваем id из таблицы brands, содержащей все мыслимые бренды.
10. about - Описание. Тупорылое поле типа TEXT. Длинну ему, как я помню, не задают вообще.
Насчет пункта 9. Здесь есть смысл реализовать связь типа "многие ко многим", т.е.: создается таблица categories, в которой хранятся все названия категорий в поле типа VARCHAR (100), и id этих категорий. Создается также ещё одна таблица из двух полей - categories_array. В певом поле - id_good - хранятся id товаров из таблицы goods, во втором поле - id_category - id категорий из categories.
Тогда наличие записей, например:
id_goods id_categories
207 34
207 37
207 145
516 314
707 3
707 4
Будет означать:
"Товар 207 относится к категориям 34, 37 и 145.
Товар 516 относится к категории 34.
Товар 707 относится к категории 3."
На практике:
Бумага (207) к категориям Канцелярия (34), Расходные материалы (37), Средства личной гигиены (145).
Холодильник (516) относится к категории Бытовая теника (314).
Фэйри (707) относится к категориям Бытовая химия (3) и Моющие средства (4).
Дальше надо проставить ключи. Вот с этим у меня в базах вельми туго...
Но ИМХО:
goods.id - PRIMARY KEY
(goods.name + goods.brand) - UNIQUE
goods.brand - KEY
goods.country - KEY
goods.price - KEY
Это для MySQL.
Вот. Надеюсь, поможет.
MySQL на винду лучше ставить вместе с пакетом Denwer, там есть встроенный phpMyAdmin (удобен для работы с MySQL), в нем можно проводить с ней практически любые операции. В Денвере же есть и интерпретатор PHP, и веб-сервер Apache (под ним в частности PHP работает). Все это ставится в два-три щелчка по одному экзешнику.
Или я не до конца понимаю, что тебе надо все-таки на курсовую сделать ?
Опять таки, аська/umail, если что...
В сервере нужно написать запросы - ХП - необходимо разобраться с синтаксисом SQL. Это проблема номер раз.
Понять вообще клиент-серверное взаимодействие, его принципы и смысл в данном случае.
Ну и потом понять, как бы сделать приложение на си шарпе желательно и подключить туда БД))
Насчет хранимых процедур в MySQL - zoonman.ru/library/mysql_sr_and_t.htm , в MSSQL - www.intuit.ru/department/database/sql/12/2.html .
Принципы клиент-серверного взаимодействия - работа с БД из языка программирования при помощи библиотек по работе с нужной БД этого языка.
Смысл - обозревание базы данных с помощью обозревателя с дружественным, интуитивно-понятным интерфейсом. База данных сама по себе вменяемого интерфейса для работы с ней человека не имеет, так что человекопонятный интерфейс реализуется на конкретном языке программирования, причем приложение должно быть связано с БД посредством своего драйвера БД (своих библиотек для работы с этой базой).
С С# раньше не работал, только видел код, и из увиденного могу заключить, что особо сложно там быть не должно.
Если же все-таки решишься на PHP, то тут я смогу клиентское приложение для работы с базой, например, такой, как я выше показывал, сделать без особого труда (как и любой PHP-кодер, знакомый с MySQL), да ещё подробно объяснить, что да как там работает.
Придумать, какие туда ХП запихнуть - тоже дело не очень сложное. Например, выборка товаров. Это запрос, который при выводе полной информации проведет здесь несколько JOIN'ов. Это можно будет в ХП запихнуть. Правда, повторюсь: я с ХП раньше не работал, потому что целесообразно в ХП засовывать, а что - нет, с уверенностью сказать не смогу.
Да, я уже поняла про интерфейс) насчет php подумаю, это пока вторая часть) ну вот задание могу показать.
Задание