Esta e a continuacao do guia de estudos para o exame 731 (DBA DB2). Deve ser utilizado como um complemento para os estudos, e nao como a fonte principal. Nesta parte focaremos na criacao e gerenciamento de objetos do bancos de dados.2.1 - Criacao de banco de dados e table spacesComando "db2 create database"Este comando tem N parametros, dentre eles, o Codeset (linguagem do banco), as tablespaces, o diretorio onde o banco vai ficar, etc.Por padrao, este comando cria 3 table spaces:SYSCATSPACE: e onde se armazena o catalogo do sistema (system catalog), ou seja, onde as informacoes sobre o banco serao armazenadas. Nao pode ser apagada.TEMPSPACE1: Tabela temporaria. Pode ser dropada desde que outra seja criada.USERSPACE1: O padrao onde os objetos do usuario serao criados. Pode ser deletada se existir outro table space com a mesma finalidade.Ao efetuar o comando create table, o banco de dados e criado no diretorio apontado pela variavel DFTDBPATH por padrao. Se esta variavel for vazia e se o usuario nao especificar manualmente a localizacao da base de dados, a mesma sera criada exatamente onde o comando foi executado.Para especificar o local de criacao de uma base, a sintaxe e:"db2 create database test on /home/julianom/base1"no caso, /database e onde a mesma sera criada.Explorando os arquivos criados, vemos que o comando criou um diretorio db2inst1 e dentro dele um chamado NODE0000 DENTRO do base1: base1/db2inst1/NODE0000/NODE0000 representa um diretorio de uma base nao particionada, se fosse algo particionado, seria um numero correspondente a particao.db2inst1 representa a instancia na qual a base foi criada.Dentro do diretorio NODE0000 podemos observar outros 3 diretorios:SQL00001 sqldbdir TESTNossa base esta dentro de SQL00001. Podemos ter inumeras bases no mesmo diretorio, entao, este numero corresponde a uma base, para ter certeza qual a sua base, efetuamos o comando "db2 list database directory on /home/julianom".Uma table space pode ser do tipo DMS - Database Managed Space, onde, a mesma vai crescendo sob demanda e nao tem interacao do usuario neste crescimento, para se criar uma dessa forma sendo armazenada em dois arquivos diferentes (e ate em diretorios diferentes):create database sample2 user table space managed by database using(file '/dbfiles/cont0' 5000, file '/dbfiles/cont1' 5000)Outro tipo de gerenciamento de Table Spaces e o SMS: System Managed Space, onde a adicao de mais espaco deve ser feita manualmente, comando:create database sample3 temporary tablespace managed by system using('/dbfiles/cont0', '/dbfiles/cont1')2.2 Automatic StorageBasicamente e a gerencia de espaco em disco automaticamente pelo DB2. Voce seta como automatico, e quando vai criar uma table space, nao precisa especificar localizacao, o DB2 cria automaticamente nos caminhos setados pelo usuario:db2 create database db_name automatic storage yesdb2 create database db_name on db_path1, db_path2Mesmo se um DB nao esta setado para Automatic Storage, podemos setar uma Table Space para ser gerenciada dessa forma:db2 create tablespace ts_name managed by automatic storage2.3 SchemasE um meio logico de gerenciar objetos do seu banco de dados. Por exemplo, podemos ter tabelas no esquema FINANCEIRO, onde somente determinados usuarios poderao fazer insert, updates, etc. Nos referimos a um objeto do esquema da seguinte forma: esquema.objeto.Alguns esquemas sao criados por padrao quando se cria