Modelação Dimensional 3

Documentos relacionados
Modelação Dimensional 4

Modelação Dimensional 2

SQL. Processamento Analítico de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Prof. Dr. Ricardo Rodrigues Ciferri

The Data Warehouse Toolkit

Tabelas. Banco de Dados I MySQL

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

PSI Linguagem de Definição de dados. Módulo 15

Sérgio Luisir Díscola Junior

Data Warehouse Toolkit: Telecomunicações e Utilitários (Cap. 10)

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação

Laboratório de Banco de Dados. Prof. Luiz Vivacqua.

MySql. Introdução a MySQL. Andréa Garcia Trindade

Importar e Exportar Dados

A U L A 8 C O N S U L T A S U N I N D O D U A S O U M A I S T A B E L A S P A R T E 2

SQL Básica. Andre Noel

Arquitetura de um Ambiente de Data Warehousing

Tarefa Orientada 17 Scripts

Informática II Cap. 5-2 Bases de Dados - MsAccess

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010

Múltiplas Tabelas. Disciplina de Banco de Dados

Modelo Relacional. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012

Banco de Dados. Linguagem SQL

Prof. Dr. Joaquim Assunção Banco de Dados. SQL (parte 4) DDL Restrições

Rápida revisão do Modelo Relacional

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

'%'! $!0" $ 8 ' %%! % '! $ $$% + ' %!%$/)!'4!+,"/)!)+,/)% *! +,"0''% * %$!*!$$ #!"%&%'%'%$! "94(# ' %'$%$$$%0%$%' *!% %%%'!**% > %% %%!31?

Trabalhando com banco de dados

MODELO DE BANCO DE DADOS RELACIONAL

Introdução à teoria de Data Warehouse. Prof. Rodrigo Leite Durães

BANCO DE DADOS. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados>

Tarefa Orientada 8 Criação de tabelas

Índices. SCE-203 Algoritmos e Estruturas de Dados II

Normalização de dados

Procedimentos Automáticos de Auditoria às Transações do SAF-T. Novembro 2014

SQL (Tópicos) Structured Query Language

BCD29008 Banco de dados

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

Motivação. Pouco conhecimento. Muitos dados e informações. Problemas para tomada de decisão

Modelos de Dados Temporais

Gestão de Base de dados Conceitos Básicos

A U L A 9 F U N Ç Õ E S A G R E G A D A S E C Á L C U L O S

A linguagem SQL

PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki

Sistemas de Suporte à Decisão. Suporte à Decisão X Operacional. Banco de Dados Avançado. Data Warehouse. Data Warehouse & Data Mart

Banco de Dados I Introdução SQL

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

Sistemas de Bases de Dados Relacionais Introdução ao SQL. Interrogações diversas sobre a Base de Dados Northwind - Parte II

Boas Práticas. Apresentação de Pedidos de Pagamento Checklist de avaliação

MATA60 BANCO DE DADOS Aula 10- Indexação. Prof. Daniela Barreiro Claro

Disciplina: Banco de Dados Tema: SQL Parte 2

ACH2025. Aula 11. Visões. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD.

Modelo Relacional + SQL (DDL) Material elaborado pela Prof. Karin Becker

modelo introduzido por E. F. Codd Meados da década de 70: protótipos. INGRES (UC Berkeley, 73 77) System R (IBM Research at San Jose, 74 78)

Utilizando o Postgres - comandos SQL para a manipulação de dados

3º Trabalho de Laboratório Objectivo Geral: Largura de banda de impulsos; Espectros de sinais básicos; Propriedades da transformada de Fourier.

Bases de Dados. Apresentação da disciplina. Programa

Bancos de Dados IV. OLAP e Cubos de Dados. Rogério Costa

Conceitos Básicos. Processamento Analítico de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Prof. Dr. Ricardo Rodrigues Ciferri

Curso Profissional de Técnico de Multimédia 11ºAno. Disciplina: Sistemas de Informação

A linguagem SQL

STRBY Sistema de Gerenciamento de Lojas de Roupas

PostgreSQL Desenvolvedor

Transcrição:

INTEGRAÇÃO E PROCESSAMENTO ANALÍTICO DE INFORMAÇÃO Modelação Dimensional 3 António Manuel Silva Ferreira UNIVERSIDADE DE LISBOA FACULDADE DE CIÊNCIAS DEPARTAMENTO DE INFORMÁTICA asfe@di.fc.ul.pt

Sumário Dimensões de mudança lenta Técnicas para registar mudanças em dimensões Role- playing de dimensões Sinónimos e vistas Dimensões conformadas Matriz de processos Relatórios transdepartamentais Gestão de dados mestre Dimensões muito grandes Bifurcações Mini- dimensões 2

Dimensões de Mudança Lenta 1 Dimensão data atualizada frequentemente Precisa de acompanhar a evolução dos factos Exemplo Encomendas de produtos e atualização diária do data warehouse Na dimensão data: novo registo correspondente ao dia anterior Na tabela de factos: registos com encomendas efetuadas no dia anterior Datas atualizadas em condnuo Outras dimensões também vão sendo alteradas com o tempo Mas Vpicamente mudam mais lentamente Por vezes de forma inesperada e discreta Designam- se slowly changing dimensions 3

Dimensões de Mudança Lenta 2 Exemplos de mudanças lentas Vendedor muda de região Empregado muda de departamento Produto muda de secção na loja Cliente muda de morada Aluno muda de curso Por que não ligar tabelas de dimensões à dimensão data? Chaves estrangeiras para a data originariam snowflaking Esquema de dados mais complicado e menos inteligível Eficiência piora devido à necessidade de fazer junções de tabelas 4

Técnicas para Registar Mudanças Lentas Tipo 1: subsftuir o valor na tabela de dimensão Apropriada para correções nos dados Ex. corrigir erro na morada do cliente Tipo 2: acrescentar uma linha na tabela de dimensão Indicada para manter o histórico de alterações Ex. registar que o cliente mudou de morada Tipo 3: acrescentar uma coluna na tabela de dimensão Usada para representar realidade alternavva Ex. capturar segunda morada do cliente 5

Técnica de Tipo 1 para Mudanças Lentas SubsFtuir o valor na tabela de dimensão Apropriada para correções nos dados Cenário: produto muda de secção na loja (para aumentar vendas) ID Ref. Descrição Secção 123 MG2 Magalhães Educação ID Ref. Descrição Secção 123 MG2 Magalhães InformáVca Vantagem Fácil e rápida de concrevzar Desvantagens Não admite histórico de alterações: único valor é o mais recente Ex. como verificar se vendas melhoraram devido à mudança de secção? Necessário atualizar valores agregados pré- calculados 6

Técnica de Tipo 2 para Mudanças Lentas 1 Acrescentar uma linha na tabela de dimensão Indicada para manter o histórico de alterações Cenário: produto muda de secção na loja (para aumentar vendas) ID Ref. Descrição Secção 123 MG2 Magalhães Educação ID Ref. Descrição Secção 123 MG2 Magalhães Educação 456 MG2 Magalhães InformáVca Chave estrangeira para produto na tabela de factos Antes da mudança de secção: 123 Depois da mudança: 456 (valor válido até à próxima alteração) Requer uflização de chave subsftuta Chave natural (referência de produto) não é alterada 7

Técnica de Tipo 2 para Mudanças Lentas 2 Registos incluem datas e indicador de validade, e razão da alteração Chave natural permite agrupar registos de alterações ID Ref. Descrição Secção Início Val. Fim Val. Razão Em Vigor 123 MG2 Magalhães Educação 01.01.2010 22.03.2010 Vender mais 456 MG2 Magalhães InformáVca 23.03.2010 x Vantagens Regista todas as alterações que vão acontecendo ao longo do tempo Valores agregados pré- calculados convnuam válidos Produto convnua a estar afeto à secção educação no período em causa Desvantagem Acelera o crescimento das tabelas de dimensão 8

Técnica de Tipo 3 para Mudanças Lentas Acrescentar uma coluna na tabela de dimensão Usada para representar uma realidade alternavva Ex. categorizar de acordo com uma ontologia diferente Cenário: produto tem nova de categoria, mas anterior convnua válida ID Ref. Descrição Categoria 123 MG2 Magalhães Educação ID Ref. Descrição Categoria C. Altern. 123 MG2 Magalhães InformáVca Educação Vantagem Facilidade em passar de uma realidade para outra Desvantagens Pode ser necessário atualizar valores agregados pré- calculados Coluna extra diminui inteligibilidade da dimensão 9

Técnicas Híbridas para Realidades Alternativas 1 Mudanças previsíveis Mesma realidade alternavva pode ter várias versões Caso dpico: reorganizações/atualização periódica de mapas (overlays) Exemplo: atribuição anual de zonas a equipas de vendedores Técnica 2 parece ser adequada, mas: Interessa poder analisar em função de qualquer versão da realidade Como seriam as vendas de 2009 segundo o mapa de zonas de 2010? Pode ser aplicada generalização da técnica 3 EID Equipa Sede Zona Atual Zona 2008 Zona 2009 Zona 2010 1 Bons Melgas Lisboa Lumiar Benfica Carnide Lumiar 2 Insistentes Porto Paranhos Campanhã Bonfim Paranhos Cada versão da realidade corresponde a uma coluna extra 10

Técnicas Híbridas para Realidades Alternativas 2 Mudanças previsíveis (convnuação) Regularidade nas mudanças cria padrão para nome das colunas Ex. atribuição anual de zonas colunas Zona ano Cada coluna extra é aplicada a todas as linhas Pode ser usado o valor não aplicável Existe o problema do número de colunas ir crescendo Mudanças imprevisíveis E se atribuição de zonas em datas diferentes para cada equipa? Deixa de fazer senvdo colunas com nome Zona ano Técnica 2 permite registar datas de validade de cada atribuição de zona Comparação de vendas segundo dois mapas de zonas Mapa em vigor aquando de uma data selecionada + mapa atual Técnica 3 permite mudar rapidamente de realidade 11

Técnicas Híbridas para Realidades Alternativas 3 Mudanças imprevisíveis (convnuação) Ex. atribuição dessincronizada de zonas a equipas de vendedores ID EID Equipa Sede Zona Início Val. Fim Val. Zona R Zona Atual 1 1 Bons Melgas Lisboa Benfica 30.03.2008 10.03.2009 Benfica Carnide 5 1 Bons Melgas Lisboa Carnide 11.03.2009 Benfica Carnide ID EID Equipa Sede Zona Início Val. Fim Val. Zona R Zona Atual 1 1 Bons Melgas Lisboa Benfica 30.03.2008 10.03.2009 Benfica Lumiar 5 1 Bons Melgas Lisboa Carnide 11.03.2009 29.11.2009 Benfica Lumiar 9 1 Bons Melgas Lisboa Lumiar 30.11.2009 Benfica Lumiar Zona R (de referência) é zona de cada equipa numa data específica 12

Registo de Mudanças Lentas em Dimensões Técnicas 1 e 2 são as mais usadas Técnica 3 incomum (reportado 1% numa palestra da indústria) Técnicas híbridas Aproveitam o melhor de cada técnica Mas complexidade aumenta Decisores podem senvr dificuldades Regras de negócio ditam escolha da técnica Nenhuma técnica serve para todos os casos Exemplo: número de telefone muda InúVl preservar o histórico: usar técnica 1 Necessário histórico: usar técnica 2 13

Role- Playing de Dimensões 1 Tabela de factos pode referir várias vezes a mesma dimensão Caso dpico: várias datas no mesmo facto Cada data desempenha um papel diferente Ex. data de encomenda, de faturação, de despacho, Ponto de vista do decisor Existem várias tabelas de dimensões com datas Posso arrastar colunas de qualquer dessas dimensões O que realmente acontece Uma tabela com todas as datas: poupa espaço em disco e manutenção Dimensões data são simuladas com vistas ou sinónimos de SQL Chaves estrangeiras na tabela de factos referenciam vistas ou sinónimos 14

Role- Playing de Dimensões 2 CREATE TABLE dimdata ( id NUMERIC(9,0) IDENTITY(1,1) PRIMARY KEY, ano NUMERIC(4,0) NOT NULL, mês NUMERIC(2,0) NOT NULL, dia NUMERIC(2,0) NOT NULL, );! - - Sinónimos para a mesma tabela de datas. CREATE SYNONYM dimdataencomenda FOR dimdata; CREATE SYNONYM dimdatafatura FOR dimdata;! CREATE TABLE factvenda ( idtransccao NUMERIC(12,0) PRIMARY KEY, dataencomenda NUMERIC( 9,0) REFERENCES dimdataencomenda(id), datafactura NUMERIC( 9,0) REFERENCES dimdatafatura(id), cliente NUMERIC( 9,0) REFERENCES dimcliente(id), produto NUMERIC( 6,0) REFERENCES dimproduto(id), euros NUMERIC( 9,2) NOT NULL, ); 15

Role- Playing de Dimensões 3 CREATE TABLE dimdata ( id NUMERIC(9,0) IDENTITY(1,1) PRIMARY KEY, ano NUMERIC(4,0) NOT NULL, mes NUMERIC(2,0) NOT NULL, dia NUMERIC(2,0) NOT NULL, );! - - Vistas permitem mudar o nome dos atributos consoante a dimensão em causa. CREATE VIEW dimdataencomenda(iddataencomenda, anoencomenda, mesencomenda, diaencomenda) AS SELECT id, ano, mes, dia FROM dimdata; CREATE VIEW dimdatafatura(iddatafatura, anofatura, mesfatura, diafatura) AS SELECT id, ano, mês, dia FROM dimdata;! CREATE TABLE factvenda ( idtransccao NUMERIC(12,0) PRIMARY KEY, dataencomenda NUMERIC( 9,0) REFERENCES dimdataencomenda(id), datafactura NUMERIC( 9,0) REFERENCES dimdatafatura(id), cliente NUMERIC( 9,0) REFERENCES dimcliente(id), produto NUMERIC( 6,0) REFERENCES dimproduto(id), euros NUMERIC( 9,2) NOT NULL, ); 16

Dimensões Conformadas 1 Data warehouse reúne vários data marts departamentais Data marts podem (devem) ter dimensões sobre as mesmas envdades Ex. encomendas e apoio a cliente usam dimensões data e cliente Matriz de processos (bus matrix) Mostra dimensões comuns aos vários processos de negócio IdenFfica dimensões comuns aos processos Processo de Negócio Dimensões Data Produto Loja Cliente Encomendas x x x x Apoio a Cliente x x x Dimensões são conformadas quando parflham atributos Dimensão cliente em encomendas tem: código, nome, e morada Dimensão cliente em apoio a cliente tem: código, nome, e idade 17

Dimensões Conformadas 2 Permitem relatórios transdepartamentais Designado drill- across Várias tabelas de factos envolvidas Time Dimension Finished Goods Inventory Orders Shipments Customer Dimension Procedimento em dois passos 1. Interrogações separadas a cada tabela de factos Product Dimension 2. Junção de resultados através de atributos com o mesmo nome Customer Inventory Customer Sales Exemplo Qual a relação entre o número de chamadas para o apoio a clientes e as encomendas do produto XK- 21 em Espanha? 1. a) nos factos de apoio a clientes: filtrar por país, agrupar por cliente, e contar chamadas; b) nos factos de encomendas: filtrar por país e produto, agrupar por cliente, e somar valor das encomendas 2. Juntar dois resultados com base no número de cliente 18

Master Conformed Dimensions Definidas por um comité de execuvvos (dimension authority) Para cada dimensão conformada mestre Reunir representantes dos processos de negócio Chegar a consenso sobre todos os atributos a incluir a) Comuns a todos os processos, nomeadamente o idenvficador de linha b) Específicos de cada processo Cliente ID e outros atributos comuns Atributos só de encomendas Atributos só de apoio a clientes Passagens de dados do data warehouse para os data marts Dimensões iguais à mestre: normalmente por cópias locais Cópia de subconjunto de atributos (só os relevantes a cada processo) Cópia de subconjunto das linhas (ex. uma parte dos produtos) 19

Gestão de Dados Mestre 1 Serviço que gere dados críticos comuns aos processos de negócio Centrado na qualidade dos dados da organização Dados mestre são versão única da verdade Ex. cada cliente tem um só registo mestre, devidamente validado Por oposição a cada processo ter o seu próprio registo do cliente Relação com os sistemas operacionais Responde a pedidos de dados com valores corretos e coerentes Ex. os vários sistemas operacionais usam os mesmos dados de cliente Aceita, para validação, pedidos de registo de dados novos Relação com os data warehouses Simplifica a limpeza e integração de dados de várias fontes Facilita o carregamento de dados nas dimensões conformadas mestre 20

Gestão de Dados Mestre 2 1. Criar processo dedicado à gestão de dados mestre Equipa deve incluir técnicos e responsáveis pelo negócio AVvidade condnua para assegurar o correto uso e parvlha de dados 2. Integrar dados existentes Várias ilhas de dados consolidadas numa versão única da verdade Esforço muito significavvo: dados nunca ficarão 100% corretos 3. Reformular sistemas e processos Reprogramar sistemas operacionais e alterar processos de negócio para passarem a usar o serviço de gestão de dados mestre 4. Aumentar massa crívca de apoio Vantagens dos dados mestre atravessam toda a organização Pouca qualidade dos dados propaga- se a todos os processos (GIGO ) 21

Dimensões Muito Grandes Dimensão cliente pode ser muito grande ou monstra Dezenas ou centenas de atributos 3000 atributos no contexto de empresa de telemarke@ng Eventualmente milhões de linhas 100 milhões de clientes em companhias de cartões de crédito Sujeita a atualizações frequentes Tipicamente a mais diƒcil de modelar Podem surgir problemas sérios de desempenho Simplicidade do desenho pode ficar compromevda Duas opções: bifurcações e mini- dimensões Em ambos os casos, ideia é transferir alguns atributos para outra tabela 22

Bifurcações (Outriggers) 1 Resultam de snowflaking de uma dimensão muito grande Transferir atributos que mudam pouco para outra tabela Critérios para a escolha de atributos Relacionados entre si Mudarem em conjunto Mudarem devagar Procedimento 1. Criar dimensão separada de desvno dos atributos 2. Remover esses atributos da dimensão original 3. Colocar chave estrangeira para dimensão separada 23

Bifurcações (Outriggers) 2 Exemplo Dados demográficos da região do cliente mudam com pouca frequência Dimensão separada para população por escalão etário, sexo, escolaridade Evitar repefção de blocos de valores para clientes da mesma região Vantagens Dimensão original passa a ocupar menos espaço em disco Potenciais ganhos de desempenho Mais fácil atualizar dados demográficos Desvantagens Perda de simplicidade: duas tabelas em vez de uma Pode ser parcialmente resolvido com uma vista Junção extra de tabelas pode diminuir desempenho 24

Bifurcações (Outriggers) 3 Exemplos na dimensão cliente Dados demográficos da região onde vive Fact Table Customer Key (FK) More Foreign Keys Facts Customer Dimension Customer Key (PK) Customer ID (Natural Key) Customer Salutation Customer First Name Customer Surname Customer City Customer County County Demographics Key (FK) Customer State and more Data da primeira compra na loja County Demographics Outrigger Dimension County Demographics Key (PK) Total Population Population under 5 Years % Population under 5 Years Population under 18 Years % Population under 18 Years Population 65 Years and Older % Population 65 Years and Older Female Population % Female Population Male Population % Male Population Number of High School Graduates Number of College Graduates Number of Housing Units Homeownership Rate and more Fact Table Transasction Date Key (FK) Customer Key (FK) More Foreign Keys Facts Neste caso, para cada cliente, os valores na bifurcação não mudam Customer Dimension Customer Key (PK) Customer ID (Natural Key) Customer Salutation Customer First Name Customer Surname Customer City Customer State Customer Attributes Date of 1st Purchase (FK) Date of 1st Purchase Dimension Date of 1st Purchase Key (PK) Date of 1st Purchase Date of 1st Purchase Month Date of 1st Purchase Year Date of 1st Purchase Fiscal Month Date of 1st Purchase Fiscal Quarter Date of 1st Purchase Fiscal Year Date of 1st Purchase Season and more 25

Mini- Dimensões 1 Dimensões monstras têm tendência a mudar rapidamente Ex. atributos de cliente, como idade, filhos, rendimentos, ImpraVcável ter mais linhas devido a alterações em alguns atributos Pode ser criada mini- dimensão para atributos quentes Guarda combinações possíveis de valores desses atributos Tabela de factos com chave estrangeira adicional para mini- dimensão Dimensão monstra não é afetada por mudanças nesses atributos Critérios para escolha de atributos Mudarem com frequência Podem não estar relacionados entre si Interesse em acompanhar alterações Valores condnuos poderem ser convervdos em intervalos discretos 26

Mini- Dimensões 2 Valores em mini- dimensões converfdos em intervalos Para reduzir número de combinações possíveis de valores Ex. idade faixa etária, rendimentos ]< a] ; [a b[ ; [ b[ Vantagens Combinações de valores na mini- dimensão podem ser reuflizadas Novas linhas na mini- dimensão só são criadas quando necessárias Desvantagens Valores em intervalos fixos (impravcável alterar posteriormente) Mini- dimensão pode tornar- se muito grande devido a combinações Pode ser resolvido acrescentando outra mini- dimensão Mini- dimensão desligada da dimensão Ligação entre mini- dimensão e dimensão através da tabela de factos 27

Mini- Dimensões 3 Exemplo na dimensão cliente Antes: atributos quentes guardados na dimensão Uma alteração em algum desses atributos cria uma nova linha na dimensão Customer Dimension Customer Key (PK) Customer ID (Natural Key) Customer Name Customer Address Customer Date of Birth Customer Date of 1st Order Age Gender Annual Income Number of Children Marital Status Customer Dimension Customer Key (PK) Customer ID (Natural Key) Customer Name Customer Address Customer Date of Birth Customer Date of 1st Order Customer Demographics Dimension Customer Demographics Key (PK) Customer Age Band Customer Gender Customer Income Band Customer Number of Children Band Customer Marital Status Fact Table Customer Key (FK) Customer Demographics Key (FK) More Foreign Keys Facts Depois: atributos quentes guardados na mini- dimensão Uma alteração pode criar uma nova linha na mini- dimensão, se ainda não exisvr Sempre necessária uma nova linha na tabela de factos Dimensão cliente não cresce devido a alterações nos atributos quentes 28

Alguns Conceitos da Modelação Dimensional Tabela de Dimensão Bifurcação Atributos Medidas Dimensões Dimensões Degeneradas Ro le- Playing de Dimensões Chave SubsFtuta Duas Tabelas de Factos Tabelas de Dimensões Fonte: Adventure Works Sample Database 29

Bibliografia Ralph Kimball e Margy Ross, The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling, Wiley, 2002 Capítulos 3, 4, 5, 6 Ralph Kimball e Margy Ross, The Kimball Group Reader: Relentlessly Prac@cal Tools for Data Warehousing and Business Intelligence, Wiley, 2010 Secções 1.8, 5.4, 6.2, 9.8, 9.17, 9.18, 9.21, 10.1, 12.2 30