Таблица бд " реки мира" содержит следующие поля : название, материк, длина ( в км), максимальная глубина ( в м ), куда впадает, наличие водохранилищ.опишите тип и ширину каждого поля.определите первичный ключ.
название : тип text или varchar (text может хранить не более 65 535 символов, varchar может хранить не более 255 символов, поскольку в русском языке нет слов длиной больше 255 символов то тут предпочтительнее varchar)
Длины достаточно 80 символов
материк: так же типа varchar здесь достаточно длины 50 символов (50 взято для запаса, если вдруг решат изменить это поле скажем на страну в которой протекает река)
длина: здесь можно использовать два типа или float если мы хотим получить длину в километрах с точкой, т.е чтобы можно было записать 655,78 км, или UNSIGNED INT (беззнаковое целое число, беззнаковое потому что длина реки не может быть отрицательной), если нам нужно хранить только целую часть длины в километрах
максимальная глубина: десь так же или float или unsigned int
куда впадает: здесь тип varchar, длиной в 80 символовю
наличие водохранилищ: тип bool (1 - есть водохранилища, 0 - нет водохранилищ)
Первичным ключом в данной таблице сторого говоря нельзя назвать ни одно поле, потому что поле, назначенное первичным ключом должно иметь уникальное значение для каждой записи. ни одно из полей не может быть уникальным:
- название не подходит потому что например по Калимантану протекает две реки с одинаковым названием — Капуас, значит название реки не может быть первичным ключом.
- материк, тут понятно не может, потому что есть много рек текущих по одному материку
- длина в километрах: теоретически может выступать как первичный ключ, но нельзя исключить что в мире есть 2 реки с одинаковой длиной.
- максимальная глубина: очевидно что нет никаких гарантий что в мире нет рек с одинаковой максимальной глубиной.
- куда впадает: в одно и то же место может впадать множество рек, это тоже не подходит под первичный ключ.
-наличие водохранилищи тоже не может выступать как первичный ключ, поскольку уже для 3х рек он не будет уникальным (ведь он принимает только 2 значение TRUE или FALSE)
Значит под из перечисленных строк первичным ключом можно назначить длину в километрах, хотя конечно это будет неверно.
Поэтому для первичного ключа надо ввести еще одно поле ID, куда записывать число типа UNSIGNED INT, причем применяя атрибут AUTOINCREMENT, т.е для каждой строки увеличивая ее значение на 1.
Тогда можно будет различить две реки даже если у них совпадает 1 или более полей.
Чтобы избежать повторного занесения одних и тех же данных можно сделать обработку вносимой информации, перед заполнение в базу данных.
В принципе это делается достаточно просто с запроса и некоторого обработчика входных данных.
Информационный поток - процесс передачи информации от одного объекта другому.При этом информация может видоизменяться, кодироваться, преобразововаться из одного вида сигналов в другие.Основные устройства компьютера - клавиатура, мышь, монитор, видео плата, процессор, ОЗУ, контроллеры, запоминающие устройства(накопители).Процессор это сердце компьютера, главный наблюдатель в процессе информационных потоков компьютера.При включении процессор инициирует процесс загрузки программ из накопителей в озу, он просит котроллеры чтобы поток данных загружался напрямую, по возможности, из накопителей в ОЗУ, минуя внутреннюю память процессора.Время от времени он опрашивает устройства ввода, мышь клавиатуру, на предмет сигналов, в которых закодированны нажатые кнопки, позиции курсора, итд... Если процессор зависнет, зациклится, то нажатия на кнопки не приведут ни к чему,т.к эти устройства никто не опрашивает.Программы, выполняющиеся на процессоре, могут "попросить" процессор выводить информацию на монитор, подавая комманды.Обрабатывая эти комманды процессор, отправляет данные в видео плату, или в котроллер видеоплаты.Видеоплата, получая данные из процессора в свой видео буфер, преобразует их в аналого-цифровой формат для подачи уже в монитор через кабель.
// PascalABC.NET 3.3, сборка 1605 от 31.12.2017 // Внимание! Если программа не работает, обновите версию!
begin var P:=new real[3,2]; // массив координат вершин for var i:=0 to 2 do (P[i,0],P[i,1]):=ReadReal2('Введите x и y вершины '+(i+1)); // длины сторон var L:(real,real)->real:=(x,y)->Sqrt(x**2+y**2); var a:=L(P[1,0]-P[0,0],P[1,1]-P[0,1]); var b:=L(P[2,0]-P[1,0],P[2,1]-P[1,1]); var c:=L(P[0,0]-P[2,0],P[0,1]-P[2,1]); if (a+b>c) and (a+c>b) and (b+c>a) then // треугольник существует if (a=b) or (a=c) or (b=c) then Writeln('Треугольник равнобедренный') else Writeln('Треугольник не равнобедренный') else Writeln('Треугольник построить невозможно') end.
Замечание: для сборок ниже 1603 от 30.12.2017 необходимо заменить Sqrt(x**2+y**2) на Sqrt(x*x+y*y)
название : тип text или varchar (text может хранить не более 65 535 символов, varchar может хранить не более 255 символов, поскольку в русском языке нет слов длиной больше 255 символов то тут предпочтительнее varchar)
Длины достаточно 80 символов
материк: так же типа varchar здесь достаточно длины 50 символов (50 взято для запаса, если вдруг решат изменить это поле скажем на страну в которой протекает река)
длина: здесь можно использовать два типа или float если мы хотим получить длину в километрах с точкой, т.е чтобы можно было записать 655,78 км, или UNSIGNED INT (беззнаковое целое число, беззнаковое потому что длина реки не может быть отрицательной), если нам нужно хранить только целую часть длины в километрах
максимальная глубина: десь так же или float или unsigned int
куда впадает: здесь тип varchar, длиной в 80 символовю
наличие водохранилищ: тип bool (1 - есть водохранилища, 0 - нет водохранилищ)
Первичным ключом в данной таблице сторого говоря нельзя назвать ни одно поле, потому что поле, назначенное первичным ключом должно иметь уникальное значение для каждой записи. ни одно из полей не может быть уникальным:
- название не подходит потому что например по Калимантану протекает две реки с одинаковым названием — Капуас, значит название реки не может быть первичным ключом.
- материк, тут понятно не может, потому что есть много рек текущих по одному материку
- длина в километрах: теоретически может выступать как первичный ключ, но нельзя исключить что в мире есть 2 реки с одинаковой длиной.
- максимальная глубина: очевидно что нет никаких гарантий что в мире нет рек с одинаковой максимальной глубиной.
- куда впадает: в одно и то же место может впадать множество рек, это тоже не подходит под первичный ключ.
-наличие водохранилищи тоже не может выступать как первичный ключ, поскольку уже для 3х рек он не будет уникальным (ведь он принимает только 2 значение TRUE или FALSE)
Значит под из перечисленных строк первичным ключом можно назначить длину в километрах, хотя конечно это будет неверно.
Поэтому для первичного ключа надо ввести еще одно поле ID, куда записывать число типа UNSIGNED INT, причем применяя атрибут AUTOINCREMENT, т.е для каждой строки увеличивая ее значение на 1.
Тогда можно будет различить две реки даже если у них совпадает 1 или более полей.
Чтобы избежать повторного занесения одних и тех же данных можно сделать обработку вносимой информации, перед заполнение в базу данных.
В принципе это делается достаточно просто с запроса и некоторого обработчика входных данных.