62945

Реляционная модель данных. Реляционная база данных

Лекция

Педагогика и дидактика

Строки таблицы (домены) содержат сведения о представленных в ней фактах (или документах, или людях, одним словом, — об однотипных объектах). На пересечении столбца (атрибут) и строки находятся конкретные значения содержащихся в таблице данных.

Русский

2016-09-14

52.44 KB

1 чел.

5fan_ru_62945_c2f512b5657b5a61878980df862c9ef8.html

Занятие 1

Реляционная модель данных

Реляционная модель данных была предложена Е.Ф.Коддом (Dr. E.F.Codd), известным исследователем в области баз данных, в 1969 году, когда он был сотрудником фирмы IBM. Впервые основные концепции этой модели были опубликованы в 1970 г. «A Relational Model of Data for Large Shared Data Banks», CACM, 1970, 13 N 6).

Реляционную базу данных можно представить себе как набор взаимосвязанных таблиц, содержащих данные. 

Набор средств для управления подобным хранилищем называется реляционной системой управления базами данных (СУБД). СУБД может содержать утилиты, приложения, сервисы, библиотеки, средства создания приложений и другие компоненты.

Любая таблица реляционной базы данных состоит из строк и столбцов.  

Строки таблицы (домены) содержат сведения о представленных в ней фактах (или документах, или людях, одним словом, — об однотипных объектах). На пересечении столбца (атрибут) и строки находятся конкретные значения содержащихся в таблице данных.

Данные в таблицах удовлетворяют следующим принципам:

  1. Каждое значение, содержащееся на пересечении строки и колонки, должно быть атомарным (то есть не расчленяемым на несколько значений).
  2. Значения данных в одной и той же колонке должны принадлежать к одному и тому же типу, доступному для использования в данной СУБД.
  3. Каждая запись в таблице уникальна, то есть в таблице не существует двух записей с полностью совпадающим набором значений ее полей.
  4. Каждое поле имеет уникальное имя.
  5. Последовательность полей в таблице несущественна.
  6. Последовательность записей также несущественна.

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

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

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

В свою очередь, на основе реляционной модели были разработаны различные языки для доступа к реляционным данным, такие как SEQUEL, SQL, QUEL и другие. Фактическим промышленным стандартом в настоящее время стал язык SQL (Structured Query Language - язык структурированных запросов).

Различные фирмы, производители СУБД, предлагают свои реализации языка SQL. Эти реализации отличаются как друг от друга, так и от стандартизованного языка SQL. Это и хорошо и плохо. Хорошо это тем, что конкретная реализация языка, может включать в себя более широкие возможности по сравнению со стандартизованными SQL, например, больше типов данных, большее количество команд, больше дополнительных опций имеющихся команд. Такие возможности делают работу с конкретной СУБД более эффективной. Кроме того, такие нестандартные возможности языка проходят практическую апробацию и со временем могут быть включены в стандарт. Плохо же это тем, что различия в синтаксисе реализаций SQL затрудняют перенос приложений из одной системы в другую. Например, если приложение было написано для базы данных MS SQL Server с использованием своего диалекта SQL - языка Transact-SQL, то при переносе системы в базу данных ORACLE, не все конструкции языка будут понятны соответствующему диалекту SQL - языку PL/SQL.

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

Пример базы данных


Попробуем построить простейшую базу данных, например, меню кафе. В таблице FOOD.DBF представлены уникальные номера блюд (столбец NOM), их названия (столбец NAME), коды видов (столбец VID), основной продукт (столбец PRODUCT), масса порции в граммах (столбец MASS) и приведенная стоимость в рублях приготовления одной порции (столбец STOIM).

FOOD.DBF

NOM

NAME

VID

PRODUCT

MASS

STOIM

1

vagetable salad

sn

vagetable

200,00

30

2

meat salad

sn

meat

200,00

40

3

fish salad

sn

fish

200,00

40

4

fish soup

so

fish

500,00

50

5

meat soup

so

meat

500,00

50

6

meat

ho

meat

210,00

60

7

fish

ho

fish

160,00

50

8

apple

de

apple

160,00

30

9

jogourt

de

jogourt

160,00

40

10

coffee

dr

coffee

200,00

10

11

milk

dr

milk

200,00

20

12

juice

dr

juice

200,00

20

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

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

Типы атрибутов и домены

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

Набор типов, поддерживаемых реляционными СУБД, включает в себя простые (атомарные) типы данных, знакомые нам по большинству языков программирования. В них входят: логический (булевский) тип, числовые типы - целочисленный и с плавающей точкой, дата/время, строковый тип и т.д.

Помимо ограничений типа, на значения атрибутов могут накладываться дополнительные ограничения. Скажем, в приведенном примере, масса каждого блюда не должна превышать 500 г.

Подмножество значений данного типа, допустимых для данного атрибута, называется доменом.

Определим в приведенном примере домен для атрибута <NOM>: очевидно, что это должно быть положительное целое число, и при нумерации по порядку маловероятно, что для кафе оно превысит 100.

В других случаях формально определить домен довольно проблематично. Например, атрибут <NAME> блюда должен быть осмысленным набором символов, произвольный набор тут недопустим.

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

Отношение определяется заголовком, который представляет собой множество атрибутов. Например, для нашего простейшего примера схема выглядит следующим образом: FOOD (NOM, NAME, VID, PRODUCT, MASS, STOIM).

Тело отношения R является множеством упорядоченных наборов вида (a1, a2, : an), где каждое ai принадлежит множеству Ai. Подобные наборы принято называть кортежами.

Следует заметить, что, хотя кортежи весьма напоминают строки таблицы, а тело отношения - саму таблицу, полной аналогии здесь нет. По своей природе кортежи не являются упорядоченными. Реляционные базы данных, хотя и позволяют упорядочивать результаты запросов некоторым образом, тем не менее, не гарантируют, что сами хранимые данные как-то упорядочены. Другими словами, если мы записываем данные в реляционную базу в какой-то последовательности, не стоит рассчитывать на то, что получить их обратно мы сможем в том же порядке.

ОДНОТАБЛИЧНЫЕ ЗАПРОСЫ

О предложении SELECT

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

SELECT

(выбрать) данные из указанных столбцов и (если необходимо) выполнить перед выводом их преобразование в соответствии с указанными выражениями и (или) функциями

FROM

(из) перечисленных таблиц, в которых расположены эти столбцы

WHERE

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

GROUP BY

(группируя по) указанному перечню столбцов с тем, чтобы получить для каждой группы единственное агрегированное значение, используя во фразе SELECT SQL-функции SUM (сумма), COUNT (количество), MIN (минимальное значение), MAX (максимальное значение) или AVG (среднее значение)

HAVING

(имея) в результате лишь те группы, которые удовлетворяют указанному перечню условий отбора групп

Выборка без использования фразы WHERE

ПРИМЕР 1:

select * from food

Результат запроса повторение таблицы FOOD.DBF

Примечание:

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

ПРИМЕР 2:

select name, stoim from food

Результат запроса – список названий блюд и их стоимость из таблицы FOOD.DBF

Примечание:

Запятая (,) используется для разделения элементов списков

NAME

STOIM

vagetable salad

30

meat salad

40

fish salad

40

fish soup

50

meat soup

50

meat

60

fish

50

apple

30

jogourt

40

coffee

10

milk

20

juice

20

ПРИМЕР 3:

select product from food

Результат запроса – список основных продуктов каждого блюда из таблицы FOOD.DBF

PRODUCT

vagetable

meat

fish

fish

meat

meat

fish

apple

jogourt

coffee

milk

juice

Исключение дубликатов

В предыдущем примере был выдан правильный, но не совсем удачный перечень основных продуктов: из него не были исключены дубликаты. Для исключения дубликатов и одновременного упорядочения перечня необходимо дополнить запрос ключевым словом DISTINCT (различный, различные), как показано в следующем примере:

ПРИМЕР 4:

select distinct product from food

PRODUCT

apple

coffee

fish

jogourt

juice

meat

milk

vagetable

Выборка вычисляемых значений

Из синтаксиса фразы SELECT видно, что в ней может содержаться не только перечень столбцов таблицы или символ *, но и выражения.

ПРИМЕР 5:

select *, Stoim*3 As Summ from food

В результате выполнения этого запроса вычисляется стоимость трех порций каждого блюда, эти данные сохраняются в новое поле таблицы FOOD.DBF; которому присваивается имя SUMM:

NOM

NAME

VID

PRODUCT

MASS

STOIM

SUMM

1

vagetable salad

sn

vagetable

200,00

30

90

2

meat salad

sn

meat

200,00

40

120

3

fish salad

sn

fish

200,00

40

120

4

fish soup

so

fish

500,00

50

150

5

meat soup

so

meat

500,00

50

150

6

meat

ho

meat

210,00

60

180

7

fish

ho

fish

160,00

50

150

8

apple

de

apple

160,00

30

90

9

jogourt

de

jogourt

160,00

40

120

10

coffee

dr

coffee

200,00

10

30

11

milk

dr

milk

200,00

20

60

12

juice

dr

juice

200,00

20

60

ПРИМЕР 6:

select *, Mass+100 As Mass_1 from food

В результате выполнения этого запроса вычисляется масса каждой порции, увеличенная на 100 г, эти данные сохраняются в новое поле таблицы FOOD.DBF; которому присваивается имя MASS_1:

NOM

NAME

VID

PRODUCT

MASS

STOIM

MASS_1

1

vagetable salad

sn

vagetable

200,00

30

300,00

2

meat salad

sn

meat

200,00

40

300,00

3

fish salad

sn

fish

200,00

40

300,00

4

fish soup

so

fish

500,00

50

600,00

5

meat soup

so

meat

500,00

50

600,00

6

meat

ho

meat

210,00

60

310,00

7

fish

ho

fish

160,00

50

260,00

8

apple

de

apple

160,00

30

260,00

9

jogourt

de

jogourt

160,00

40

260,00

10

coffee

dr

coffee

200,00

10

300,00

11

milk

dr

milk

200,00

20

300,00

12

juice

dr

juice

200,00

20

300,00

Фраза WHERE

Фраза WHERE включает набор условий для отбора строк.

Для отбора используются операторы сравнения (= , <>,| <,| <= , >, >=)

ПРИМЕР 7:

select name from food;

where name='f'

Результат запроса – список названий блюд, начинающихся на букву f из таблицы FOOD.DBF.

Примечание:

Точка с запятой (;) употребляется при переходе на следующую строку;

Символьные переменные заключаются в кавычки (' ').

NAME

fish salad

fish soup

fish

ПРИМЕР 8:

select name from food;

where name>'f'

Результат запроса – список названий блюд, начинающихся на любую букву латинского алфавита после буквы f из таблицы FOOD.DBF.

NAME

vagetable salad

meat salad

meat soup

meat

jogourt

milk

juice

Критерий отбора строк формируется из одного или нескольких условий, соединенных логическими операторами:

AND

- когда должны удовлетворяться оба разделяемых с помощью AND условия;

OR

- когда должно удовлетворяться одно из разделяемых с помощью OR условий;

AND NOT 

- когда должно удовлетворяться первое условие и не должно второе;

OR NOT

- когда или должно удовлетворяться первое условие или не должно удовлетворяться второе,

причем существует приоритет AND над OR (сначала выполняются все операции AND и только после этого операции OR). Для получения желаемого результата WHERE условия должны быть введены в правильном порядке, который можно организовать введением скобок.

При обработке условия числа сравниваются алгебраически - отрицательные числа считаются меньшими, чем положительные, независимо от их абсолютной величины. Строки символов сравниваются в соответствии с их представлением в коде, используемом в конкретной СУБД, например, в коде ASCII. Если сравниваются две строки символов, имеющих разные длины, более короткая строка дополняется справа пробелами для того, чтобы они имели одинаковую длину перед осуществлением сравнения.

ПРИМЕР 9:

select name from food;

where name='f';

and mass=200

Результат запроса – список названий блюд, начинающихся на букву f и масса  порции которых равна 200 г из таблицы FOOD.DBF.

NAME

fish salat

ПРИМЕР 10:

select name from food;

where name='f';

or mass=200

Результат запроса – список названий блюд, начинающихся на букву f, или масса  порции которых равна 200 г из таблицы FOOD.DBF.

NAME

vagetable salat

meet salat

fish salat

fish soup

fish

coffe

milk

jouce

ПРИМЕР 11:

select name from food;

where name='f';

and not mass=200

Результат запроса – список названий блюд, начинающихся на букву f, и масса  порции которых не равна 200 г из таблицы FOOD.DBF.

NAME

fish soup

fish

ПРИМЕР 12:

select name from food;

where name='f';

or not mass=200

Результат запроса – список названий блюд, начинающихся на букву f, или масса  порции которых не равна 200 г из таблицы FOOD.DBF.

NAME

fish salad

fish soup

meat soup

meat

fish

apple

jogourt

Кроме традиционных операторов сравнения (= | <> | < | <= | > | >=) в WHERE фразе используются условия BETWEEN (между), LIKE (похоже на), IN (принадлежит), IS NULL (не определено) и EXISTS (существует), которые могут предваряться оператором NOT (не).

Использование BETWEEN

С помощью BETWEEN ... AND ... (находится в интервале от ... до ...) можно отобрать строки, в которых значение какого-либо столбца находятся в заданном диапазоне.

ПРИМЕР 13:

select name from food;

where mass between 100 and 200

Результат запроса - перечень блюд, масса порции которых находится в диапазоне от 100 г до 200 г:

NAME

vagetable salad

meat salad

fish salad

fish

apple

jogourt

coffee

milk

juice

ПРИМЕР 14:

select name from food;

where mass not between 100 and 200

Можно задать и NOT BETWEEN (не принадлежит диапазону между)

Результат запроса - перечень блюд, масса порции которых не находится в диапазоне от 100 г до 200 г:

NAME

fish soup

meat soup

meat

BETWEEN особенно удобен при работе с данными, задаваемыми интервалами, начало и конец которых расположен в разных столбцах.

ПРИМЕР 15:

select * from food;

where mass between 100 and 200;

And stoim between 40 and 50

Результат запроса - перечень блюд, масса порции которых не находится в диапазоне от 100 г до 200 г и стоимость в диапазоне от 40 до 50 рублей.

NOM

NAME

VID

PRODUCT

MASS

STOIM

2

meat salad

sn

meat

200,00

40

3

fish salad

sn

fish

200,00

40

7

fish

ho

fish

160,00

50

9

jogourt

de

jogourt

160,00

40

Использование IN

ПРИМЕР 16:

select * from food;

where vid in ("sn","de")

Результат запроса – список закусок и десертов.

NOM

NAME

VID

PRODUCT

MASS

STOIM

1

vagetable salad

sn

vagetable

200,00

30

2

meat salad

sn

meat

200,00

40

3

fish salad

sn

fish

200,00

40

8

Apple

de

apple

160,00

30

9

Jogourt

de

jogourt

160,00

40

Рассмотренная форма IN является в действительности просто краткой записью последовательности отдельных сравнений, соединенных операторами OR.

Предыдущее предложение эквивалентно такому:

select * from food;

where vid ="sn" or vid="de"

Можно задать и NOT IN (не принадлежит), а также возможность использования IN (NOT IN) с подзапросом.

Использование LIKE

ПРИМЕР 17:

select * from food;

where vid like "sn"

Результат запроса – список закусок.

NOM

NAME

VID

PRODUCT

MASS

STOIM

1

vagetable salad

sn

vagetable

200,00

30

2

meat salad

sn

Meat

200,00

40

3

fish salad

sn

Fish

200,00

40

Обычная форма "имя_столбца LIKE текстовая_константа" для столбца текстового типа позволяет отыскать все значения указанного столбца, соответствующие образцу, заданному "текстовой_константой". Символы этой константы интерпретируются следующим образом:

Примечание:

  1. символ _ (подчеркивание) заменяет любой одиночный символ,
  2. символ % (процент) заменяет любую последовательность из N символов (где N может быть нулем),
  3. все другие символы означают просто сами себя.

ПРИМЕР 18:

select * from food;

where name like "%sal%"

Результат запроса – список салатов.

NOM

NAME

VID

PRODUCT

MASS

STOIM

1

vagetable salad

sn

Vegetable

200,00

30

2

meat salad

sn

Meat

200,00

40

3

fish salad

sn

Fish

200,00

40

ПРИМЕР 19:

select * from food;

where name like "_i%"

Результат запроса – список блюд, в названии которых вторая буква i.

NOM

NAME

VID

PRODUCT

MASS

STOIM

3

fish salad

sn

Fish

200,00

40

4

fish soup

so

Fish

500,00

50

7

fish

ho

Fish

160,00

50

11

milk

dr

Milk

200,00

20

Агрегирование данных

SQL-функции

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

COUNT

- число значений в столбце,

SUM

- сумма значений в столбце,

AVG

- среднее значение в столбце,

MAX

- самое большое значение в столбце,

MIN

- самое малое значение в столбце.

Для функций SUM и AVG рассматриваемый столбец должен содержать числовые значения.

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

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

Фраза  GROUP BY

GROUP BY инициирует перекомпоновку формируемой таблицы по группам, каждая из которых имеет одинаковое значение в столбцах, включенных в перечень GROUP BY. Далее к этим группам применяются агрегирующие функции, указанные во фразе SELECT (SUM (сумма), COUNT (количество), MIN (минимальное значение), MAX (максимальное значение) или AVG (среднее значение)), что приводит к замене всех значений группы на единственное значение (сумма, количество и т.п.).

ПРИМЕР 20:

select vid, sum(mass) FROM food;

group BY vid

Результат запроса – список блюд, масса порций которых находится в диапазоне от 100 г до 200 г, с дополнительным полем SUMMA, в котором вычислена суммарная  масса сгруппированных по названию главного продукта порций.

NOM

NAME

VID

PRODUCT

MASS

STOIM

SUMMA

11

milk

dr

milk

200,00

20

200,00

8

apple

de

apple

160,00

30

160,00

10

coffee

dr

coffee

200,00

10

200,00

7

fish

ho

fish

160,00

50

360,00

9

jogourt

de

jogourt

160,00

40

160,00

12

juice

dr

juice

200,00

20

200,00

2

meat salad

sn

meat

200,00

40

200,00

1

vagetable salad

sn

vagetable

200,00

30

200,00

С помощью фразы HAVING (синтаксис которой почти не отличается от синтаксиса фразы WHERE) [NOT] HAVING_условие [[AND|OR][NOT] HAVING_условие]... можно исключить из результата группы, не удовлетворяющие заданным условиям

ПРИМЕР 21:

select *, sum(mass) As summa from food;

Group By product;

having not mass = 160

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

NOM

NAME

VID

PRODUCT

MASS

STOIM

SUMMA

11

milk

dr

milk

200,00

20

200,00

10

coffee

dr

coffee

200,00

10

200,00

12

juice

dr

juice

200,00

20

200,00

6

meat

ho

meat

210,00

60

910,00

1

vagetable salad

sn

vagetable

200,00

30

200,00


 

А также другие работы, которые могут Вас заинтересовать

54789. Північна Америка. Фізико-географічне положення. Історія відкриття й дослідження материка 35 KB
  Мета уроку: сформувати знання про фізикогеографічне положення особливості берегової лінії історію відкриття та дослідження материка Північна Америка; удосконалювати вміння працювати з картоювизначати географічні координати; розвивати увагу уяву зорову пам’ять логічне мислення; виховувати інтерес до пізнання нового. До цього ви ознайомилися з чотирма материками. Сьогодні на уроці ми з вами більш детально ознайомимося з особливостями географічного положення материка Північна Америка та...
54790. Пагін, його будова. Стебло – вісь пагона 37.5 KB
  Цілі: Сформувати в учнів поняття про пагін – основний надземний орган рослини що складається із стебла листків і бруньок познайомити з видами бруньок продовжити формування умінь і навичок виконання і оформлення лабораторної роботи. Що ж головне корінь чи пагін Давайте послухаємо байку Михайла Старицького Коріння та пагін.
54791. Особенности рынков ресурсов 18.98 KB
  Факторы производства — экономические ресурсы, участвую­щие в производстве товаров и услуг. Под экономическими ре­сурсами понимают людские ресурсы (труд и предприниматель­ская способность) и материальные ресурсы (земля и капитал)
54793. Хочеш довго жити – кидай палити 35.5 KB
  Паління стало характерним для нашого суспільства ми постійно стикаємося з цим явищем. Лікартерапевт: Насамперед паління вражає легені серцевосудинну систему. Статист: Шановні А що можна заперечити проти моїх цифр Кожні 24 години через паління в Америці помирає 1000 осіб. доларів на приналежності для паління.
54794. Памяти павших… 118 KB
  Вот почему сегодня мы, выпускники 2001 года, стоящие на пороге новой жизни, хотим мысленно перенестись на 60 лет назад, в последние предвоенные дни и вместе с выпускниками 41 года пережить и полёт мечты, и жажду счастья, и крушение надежд, и горечь потерь...
54795. Удосконалення організації навчальної діяльності під час вивчення історії 55.5 KB
  Можеш розпочати з опису подій в найголовніших їх рисах а потім поставити ряд питань: з чим пов язана дана подія які протилежності закономірності в основі чому воно виявилось можливим Перерахувавши ці проблеми дай кожній аргументовану відповідь а в кінці розкрий значення І характер даної події. Інтереси якої соціальної групи виражав В чому полягала мета І прагнення цієї групи 2. В якій послідовності краще розмістити ці ознаки Чому 3. В чому причини даного явища В чому полягає соціальна сутність цього явища.
54796. Способи розкладання многочленів на множники 43.5 KB
  Розкласти многочлен на множники означає подати його як добуток кількох многочленів аb c = аb аc помножили одночлен на многочлен; результат многочлен аb аc = аb c розклали многочлен на множники; результат добуток одночлена і многочлена Порівняйте: Спосіб винесення спільного множника за дужки. Многочлен x2 xy розклали на два множники x та x y. Щоб розкласти многочлен x2 xy на множники досить у його членах x2 та xy виділити спільний множник x: x2 xy = x  x x  y а потім на основі розподільної властивості...
54797. Спрос на ресурсы и факторы, его определяющие 18.49 KB
  Спрос на ресурсы, в отличие от спроса на потребительские товары, связан с производством, осуществляемым конкретным предприятием (фирмой). В связи с тем, что целью предприятия является максимизация прибыли, ею определяется и объем спроса на ресурсы.