Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RFpro.ru: Базы данных MySQL


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Гуревич Александр Львович
Статус: Специалист
Рейтинг: 3364
∙ повысить рейтинг »
_Ayl_
Статус: Студент
Рейтинг: 1452
∙ повысить рейтинг »
lamed
Статус: Практикант
Рейтинг: 1252
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Базы данных MySQL

Номер выпуска:450
Дата выхода:19.01.2010, 17:30
Администратор рассылки:Victor Pyrlik, Модератор
Подписчиков / экспертов:631 / 189
Вопросов / ответов:3 / 5

Вопрос № 143064: Здравствуйте господа эксперты!!! Возможно ли, а если возможно то как, таблицы SQL Server 2005, находящиеся в файле *.mdf распределить по файлам данных, то есть в файле *.mdf оставить структуру, а сами данные вынести в другие файлы *.ndf??? Спасибо....


Вопрос № 172490: Доброго времени суток! Делаю систему оценки качества товаров на MySQL и PHP. Что может быть проще, создать таблицу с голосами за товар и выводить средний рейтинг. Табличку для хранения голосов создал с полями what и vote (ID товара и оценка ...
Вопрос № 38973: Здравтвуйте уважаемые эксперты! Использую MS Access+ MS SQL server. При создании проекта (adp) в Access,после импорта таблиц невозможно их изменить. Пишет "данный набор записей не допускает обновления".Что делать?...

Вопрос № 143064:

Здравствуйте господа эксперты!!! Возможно ли, а если возможно то как, таблицы SQL Server 2005, находящиеся в файле *.mdf распределить по файлам данных, то есть в файле *.mdf оставить структуру, а сами данные вынести в другие файлы *.ndf??? Спасибо.

Отправлен: 04.09.2008, 16:19
Вопрос задал: Демин Евгений Анатольевич, Посетитель
Всего ответов: 1
Страница вопроса »


Отвечает Челноков Виктор Альбертович, Студент :
Здравствуйте, Демин Евгений Анатольевич!

Первичные файловые группы

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

Пользовательские файловые группы

К пользовательским файловым группам относятся все файловые группы, которые задаются с помощью ключевого слова FILEGROUP в инструкции CREATE DATABASE или ALTER DATABASE.

Файлы журналов не могут входить в состав файловых групп. Управление пространством журнала отделено от управления пространством данных.

Файл не может входить в состав нескольких файловых групп. Таблицы, индексы и данные больших объектов могут быть ассоциированы с указанной файловой группой. В этом случае все их страницы будут размещены внутри файловой группы; либо таблицы и индексы могут быть секционированы. Данные секционированных таблиц и индексов разделяются на блоки, каждый из которых может быть помещен в отдельную файловую группу базы данных. Дополнительные сведения о секционированных таблицах и индексах см. в разделе Секционированные таблицы и индексы.

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



В. Создание базы данных, в которой указаны несколько файлов данных и журналов транзакций
Следующий пример создает базу данных Archive, имеющую 3 файла с данными объемом по 100-MB каждый и два файла журнала транзакций по 100-MB. Первичный файл является первым файлом в списке и явно задан ключевым словом PRIMARY. Файлы журналов транзакций заданы следующими ключевыми словами LOG ON. Следует обратить внимание на расширения, используемые для файлов в параметре FILENAME: расширение .mdf используется для первичных файлов данных, .ndf используется для вторичных файлов данных, а .ldf используется для файлов журналов транзакций.

Копировать код
USE master;
GO
IF DB_ID (N'Archive') IS NOT NULL
DROP DATABASE Archive;
GO
-- Get the SQL Server data path
DECLARE @data_path nvarchar(256);
SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1)
FROM master.sys.master_files
WHERE database_id = 1 AND file_id = 1);

-- execute the CREATE DATABASE statement
EXECUTE ('CREATE DATABASE Archive
ON
PRIMARY
(NAME = Arch1,
FILENAME = '''+ @data_path + 'archdat1.mdf'',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
( NAME = Arch2,
FILENAME = '''+ @data_path + 'archdat2.ndf'',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
( NAME = Arch3,
FILENAME = '''+ @data_path + 'archdat3.ndf'',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20)
LOG ON
(NAME = Archlog1,
FILENAME = '''+ @data_path + 'archlog1.ldf'',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
(NAME = Archlog2,
FILENAME = '''+ @data_path + 'archlog2.ldf'',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20)'
);
GO


Ответ отправил: Челноков Виктор Альбертович, Студент
Ответ отправлен: 04.09.2008, 19:30

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 228597 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 172490:

    Доброго времени суток!
    Делаю систему оценки качества товаров на MySQL и PHP.
    Что может быть проще, создать таблицу с голосами за товар и выводить средний рейтинг.
    Табличку для хранения голосов создал с полями what и vote (ID товара и оценка соответственно). Выбрать количество голосов и подсчитать сумму всех голосов, а также вычислить среднюю оценку можно простым запросом –

    Код:
    SELECT * , SUM( `vote` ) AS `sum` , count( `vote` ) AS `CountVote` , SUM( `vote` ) / count( `vote` ) AS `rating` 
    FROM `cms_rating`
    WHERE `what` = '2306'

    Этот запрос выполняется достаточно быстро, но меня смущает то, что сумма голосов и их количество подсчитываются дважды.
    Так же если нужно подсчитать рейтинг более чем для одного товара, т о такой запрос не срабатывает. Если в условие WHERE перечислить все нужные идентификаторы товара, то рейтинг посчитается только для первого из них. (WHERE `what` = '1' OR `what` = '2' OR `what` = 'n').
    Собственно вот и вопросы, как избавиться от двойного подсчёта полей `sum` и `CountVote`, а также как вычислить рейтинг нескольких товаров в одном запросе.

    Отправлен: 22.09.2009, 17:54
    Вопрос задал: Cimus, Студент
    Всего ответов: 3
    Страница вопроса »


    Отвечает vladisslav, 5-й класс :
    Здравствуйте, Cimus!
    Чтобы избежать двойного вычисления, нужно использовать переменные. Чтобы посчитать для нескольких товаров (или всех), нужно использовать группировку.

    Приложение:

    Ответ отправил: vladisslav, 5-й класс
    Ответ отправлен: 22.09.2009, 18:32

    Оценка ответа: 5
    Комментарий к оценке:
    Спасибо!

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 254529 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Victor Pyrlik, Модератор :
    Здравствуйте, Cimus.

    SELECT what, SUM(vote) AS sum_vote , count(vote) AS count_vote , AVG( vote ) AS avg_vote
    FROM cms_rating
    WHERE what = '2306'
    GROUP BY what

    или, для множества
    WHERE what IN (2306,2307,2308 и т.д.)

    URL >>ОБОБЩЕНИЕ ДАННЫХ С ПОМОЩЬЮ АГРЕГАТНЫХ ФУНКЦИЙ
    Россия, Екатеринбург
    Тел.: 89043822027
    ICQ # 490191733
    Абонент Skype: stells00

    -----
    Жизнь игрушка – пока играешь сам..

    Ответ отправил: Victor Pyrlik, Модератор
    Ответ отправлен: 22.09.2009, 19:02

    Оценка ответа: 5
    Комментарий к оценке:
    Спасибо за отличный ответ и за ссылку!

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 254532 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает lamed, Практикант :
    Здравствуйте, Cimus.

    select
    what,
    count(vote) as CountVote,
    sum(vote) as SumVote,
    avg(vote) as rating
    from cms_rating
    group by what

    Использовать слова типа 'sum' (в апострофах) очень не советую, хотя работать-то будет, но за этим словом закреплен и зарезервированный смысл. Остальные имена не являются зарезервированными и сформированы по всем правилам имен SQL, поэтому (и в Мануале, кстати) они используются без апострофов

    Ответ отправил: lamed, Практикант
    Ответ отправлен: 22.09.2009, 20:01

    Оценка ответа: 5
    Комментарий к оценке:
    Спасибо!

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 254542 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 38973:

    Здравтвуйте уважаемые эксперты!
    Использую MS Access+ MS SQL server. При создании проекта (adp) в Access,после импорта таблиц невозможно их изменить. Пишет "данный набор записей не допускает обновления".Что делать?

    Отправлен: 30.03.2006, 15:32
    Вопрос задал: TTT
    Всего ответов: 1
    Страница вопроса »


    Отвечает Игорь Елизаров, Студент :
    Здравствуйте, TTT!

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


    -----
    Пользователь - тоже человек..

    Ответ отправил: Игорь Елизаров, Студент
    Ответ отправлен: 30.03.2006, 19:31

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 90650 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    подать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.13 от 28.12.2009

    В избранное