Предмет «Проектирование баз данных и баз знаний», лекции и выполнение задания.

На этой странице лекции по предмету «Проектирование баз данных и баз знаний», так как предмет носит скорее практический характер, чем теоретический, лекций мало, основная часть моей работы видна в результате тут: http://4insite.ru/friends.php. Лекции лишь немного помогают разобраться в том, как выполнить задание. Мое основное задание было сделать вывод на странице всех друзей одного человека и друзей человека через одного (то есть общих друзей двух людей). Задача максимум — найти общих друзей через 6 человек.  Фрагменты кода, приведенные на странице, содержат ошибки, так как эти записи для истории, а не для передачи точных знаний, хотя и содержат в себе ключевые идеи для решения поставленной задачи. При чтении будьте бдительны, я специально не стал исправлять ошибки, так как в бумажных лекциях у меня были именно эти записи, а долго хранить бумажные лекции неудобно.

5 сентября 2017.

Изучить триггеры и хранимые процедуры.

Виды баз данных:

  • Иерархические
  • Сетевые
  • Реляционные
  • Постреляционные
  • Объектно-ориентированные

Нормальные формы баз данных:

  1. Все данные должны быть простыми.
  2. Все должно зависеть от первичного ключа.
  3. Не должно быть транзитивных зависимостей (пример: «ФИО -> Должность -> Оклад»).

Литература: Хроманенко «Базы данных».

  • PHP компилятор
  • MySQL
  • WEB сервер (например, Apachi, nginx).

Существуют сборки: Dnever, XAMPP.

Автоинкремент — автоматически вставляет нумерацию.

Каскадное удаление — удаление из всех таблиц. Например:

Таблица 1 «catalog» |ID|name|adr|

Таблица 2 «ages» |name|age|

Каскадное удаление name сразу из двух таблиц.

Задание: «Они друг друга знают». ФИО и «Кто с ним дружит», Модуль по вводу данных, модуль по выводу.

UPDATE countcomment SET count=count + 1 WHERE idu=new.idu;

12 сентября 2017

Задание: Продумать структуру базы данных и обосновать ее. Составить запросы на список общих друзей через одного, через двух.

Таблица «people»

|ID|FIO|Date_of_birth|town|

Таблица «drugi»

|who1|who2|

SELECT id from people WHERE id=id1 and id=n

SELECT who2 from drugi WHERE who1=id1 and who2 in (SELECT who2 from drugi WHERE who1=id2)

19 сентября 2017

Схематично результат должен выглядеть так:

«users

|login|pass|

Пользователи

|login|pass|

|1       |        |

|2       |       |

Кнопка «Добавить нового».

Поле для ввода логина и пароля, кнопка «ОК, добавить».»

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

Файл ini.php

<?php

$_db=’uu’;

$_user=’root’;

$_pass=»;

$db=mysqli_connect (localhost,$user,$pass)

or DIE (‘Не могу’)

mysqli_select_db ($_db,$db);

?>

Файл users.php

<?php

 

  require_once(‘ini.php’);

$query=’select * from users’;

$res=mysqli_query ($db,$query);

while ($row=mysqli_fetch_array($res))

// Знак «.» — конкатенация или объединение текстовых блоков данных.

echo  «<tr><td>».$raw[‘login’]</td><td>.$row[pass]

?>

//добавить нового

<from action=’new.php’ metod=’Get’>

<lable> login

<input type = «text» name ‘log’>

</table>

<br/>

-||- pass

<input type = ‘submit’>

Файл new.php

<?php

requare_once(‘ini.php’);

$query=’INSERT INTOusers values (».$_get[‘log’].»,».$_get[‘pas’].»;

//echo $query; — для выявления ошибок, для проверки.

mysqli_query($db,$query);

header(«Location:users.php»); /*команда header не работает, если есть вывод*/

«<a href=\»del.php/?ID=».$row[‘id’].»><img src=\»1.png\:></a>»

файл del.php

$query=»DELETE from users WHERE id «.$_GET[id];

mysqli_query ($query,$db);

?>