Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Si2 folha-exame

301 Aufrufe

Veröffentlicht am

  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Si2 folha-exame

  1. 1. T-SQL <table_constraint> ::= INSERT, UPDATE, or DELETE statements on a table or view. Flow Control: { DDL triggers execute in response to a variety of data definition language BEGIN...END { PRIMARY KEY | UNIQUE } (DDL) events. These events primarily correspond to Transact-SQL also known as statement_block ( column_name [ ,... ] ) CREATE, ALTER, and DROP statements, and certain system stored BEGIN | CHECK ( search_condition ) procedures that perform DDL-like operations. Logon triggers fire in {sql_statement | statement_block} } response to the LOGON event that is raised when a user sessions is being END established. Triggers can be created in the SQL Server 2005 Database <column_definition> ::= Engine directly from Transact-SQL statements or from methods of BREAK column_name {scalar_data_type | AS computed_column_expression} assemblies that are created in the Microsoft .NET Framework common Stop a WHILE loop. [ COLLATE collation_name ] language runtime (CLR) and uploaded to an instance of SQL Server. [ [ DEFAULT constant_expression ] SQL Server allows for creating multiple triggers for any specific CONTINUE | IDENTITY [ (seed ,increment ) ] ] statement. Restart a WHILE loop. [ ROWGUIDCOL ] Trigger on an INSERT, UPDATE, or DELETE statement to a table or [ <column_constraint> ] view (DML Trigger) GOTO label Alter the flow of execution to a label. CREATE TRIGGER [ schema_name . ]trigger_name GOTO label EXECUTE (Transact-SQL) ON { table | view } Note: Executes a command string or character string within a Transact-SQL [ WITH <dml_trigger_option> [ ,...n ] ] definig the label: batch, or one of the following modules: system stored procedure, user- { FOR | AFTER | INSTEAD OF } label : defined stored procedure, scalar-valued user-defined function, or extended { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] } stored procedure. [ WITH APPEND ] IF...ELSE Execute a stored procedure or function [ NOT FOR REPLICATION ] IF boolean expression [ { EXEC | EXECUTE } ] AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME <method specifier {sql_statement | statement_block} { [;]>} [ [ @return_status = ] ELSE { module_name [ ;number ] | @module_name_var } <dml_trigger_option> ::= {sql_statement | statement_block} [ [ @parameter = ] { value [ ENCRYPTION ] ] | @variable [ OUTPUT ] [ EXECUTE AS Clause ] | [ DEFAULT ] RETURN } <method_specifier> ::= Exits uncondicionally from a query or procedure ] assembly_name.class_name.method_name RETURN [ integer expression ] [ ,...n ] [ WITH RECOMPILE ] Trigger on a CREATE, ALTER, DROP, GRANT, DENY, REVOKE, or TRY...CATCH } UPDATE STATISTICS statement (DDL Trigger) BEGIN TRY ; CREATE TRIGGER trigger_name {sql_statement | statement_block} Execute a character string ON { ALL SERVER | DATABASE } END TRY { EXEC | EXECUTE } [ WITH <ddl_trigger_option> [ ,...n ] ] BEGIN CATCH ( { @string_variable | [ N ]tsql_string } [ + ...n ] ) { FOR | AFTER } { event_type | event_group } [ ,...n ] {sql_statement | statement_block} [ AS { LOGIN | USER } = name ] AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME < method specifier END CATCH ; > [;]} ; Execute a pass-through command against a linked server { EXEC | EXECUTE } <ddl_trigger_option> ::= WAITFOR ( [ ENCRYPTION ] Block the execution of a batch, stored procedure or transaction until: { @string_variable | [ N ] command_string [ ? ] } [ + ...n ] [ EXECUTE AS Clause ] - specified time or a time interval is reached [ { , { value | @variable [ OUTPUT ] } } [ ...n ] ] - specified statement modifies or returns at least one row ) <method_specifier> ::= WAITFOR [ AS { LOGIN | USER } = name ] assembly_name.class_name.method_name { [ AT linked_server_name ] DELAY time_to_pass ; Trigger on a LOGON event (Logon Trigger) | TIME time_to_execute CREATE TRIGGER trigger_name | [ ( receive_statement ) PRINT (Transact-SQL) ON ALL SERVER | ( get_conversation_group_statement ) ] PRINT msg_str | @local_variable | string_expr [ WITH <logon_trigger_option> [ ,...n ] ] [ , TIMEOUT timeout ] { FOR | AFTER } LOGON } RAISERROR (Transact-SQL) AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME <method specifier> RAISERROR ( { msg_id | msg_str | @local_variable } [;]} WHILE { ,severity ,state } <logon_trigger_option> ::= WHILE Boolean_expression [ ,argument [ ,...n ] ] ) [ ENCRYPTION ] { sql_statement | statement_block | BREAK | CONTINUE } [ WITH option [ ,...n ] ] [ EXECUTE AS Clause ] BATCHES CURSORES: The following rules apply to using batches: ISO Syntax <method_specifier> ::= - CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, DECLARE cursor_name [ INSENSITIVE ] [ SCROLL ] CURSOR assembly_name.class_name.method_nameCREATE RULE, CREATE SCHEMA, CREATE TRIGGER, and CREATE FOR select_statement TransacçõesVIEW statements cannot be combined with other statements in a batch. The [ FOR { READ ONLY | UPDATE [ OF column_name [ ,...n ] ] } ] ObjectivosCREATE statement must start the batch. All other statements that follow in ; * Fornecer mecanismos de recuperação em caso de falhas do sistemathat batch will be interpreted as part of the definition of the first CREATE Transact-SQL Extended Syntax * Facilitar o tratamento de erros ao nivel das aplicaçõesstatement. DECLARE cursor_name CURSOR [ LOCAL | GLOBAL ] * Fornecer mecanismos que permitam controlar de forma eficiente as - A table cannot be changed and then the new columns referenced in the [ FORWARD_ONLY | SCROLL ] interferências entre aplicações que concorrem no acesso aos mesmos recursossame batch. [ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ]- If an EXECUTE statement is the first statement in a batch, the EXECUTE [ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC ] Propriedades(ACID)keyword is not required. The EXECUTE keyword is required if the [ TYPE_WARNING ] * Atomicidade (Atomicity) : Uma transacção é indivisível no seuEXECUTE statement is not the first statement in the batch. FOR select_statement processamento Reference [ FOR UPDATE [ OF column_name [ ,...n ] ] ] * Consistência (Consistency preservation) : Uma transacção conduz a BD /*...*/ (Comment) ; de um estado consistente para outro estado consistente -- (Comment) STORED PROCEDURES * Isolamento (Isolation) : As transacções concorrentes não devem interferir CASE CREATE PROCEDURE (Transact-SQL) umas com as outras durante a sua execução Evaluates a list of conditions and returns one of multiple possible result Creates a Transact-SQL or common language runtime (CLR) stored * Durabilidade (Durability) : O resultado de uma transacção válida deve serexpressions. procedure in SQL Server 2008 R2. Stored procedures are similar to tornado persistente (mesmo na presença de falhas, após commit) The CASE expression has two formats: procedures in other programming languages in that they can: - The simple CASE expression compares an expression to a set of simple - Accept input parameters and return multiple values in the form of output Estadosexpressions to determine the result. parameters to the calling procedure or batch. Activa: é o estado após início da transação e mantém-se enquanto se forem - The searched CASE expression evaluates a set of Boolean expressions - Contain programming statements that perform operations in the database, realizando operações de leitura e escrita sobre os dados.to determine the result. including calling other procedures. Parcialmente commited: quando se indica que a transacção deve terminar Both formats support an optional ELSE argument. - Return a status value to a calling procedure or batch to indicate success or com sucesso, entra-se neste estado. Nele é garantido que todos os dados são Simple CASE expression: failure (and the reason for failure). transferidos para disco (force-writing) e só se isso acontecer é que a CASE input_expression Use this statement to create a permanent procedure in the current database or transacção atinge o commit point WHEN when_expression THEN result_expression [ ...n ] a temporary procedure in the tempdb database. Commited: a transaccão entra neste estado quando atinge o commit point [ ELSE else_result_expression ] Falhada: a transacção vem para este estado se for abortada no seu estado END --Transact-SQL Stored Procedure Syntax activa ou se os testes realizados no estado parcialmente commited falharem Searched CASE expression: CREATE { PROC | PROCEDURE } [schema_name.] procedure_name Terminada: a transação deixa de existir no sistema. CASE [ ; number ] SET TRANSACTION ISOLATION LEVEL (Transact-SQL) WHEN Boolean_expression THEN result_expression [ ...n ] [ { @parameter [ type_schema_name. ] data_type } SET TRANSACTION ISOLATION LEVEL [ ELSE else_result_expression ] [ VARYING ] [ = default ] [ OUT | OUTPUT ] [READONLY] { READ COMMITTED (por omissão) END ] [ ,...n ] | READ UNCOMMITTED [ WITH <procedure_option> [ ,...n ] ] | REPEATABLE READ DECLARE @local_variable [ FOR REPLICATION ] | SERIALIZABLE Variables are declared in the body of a batch or procedure with the AS { [ BEGIN ] sql_statement [;] [ ...n ] [ END ] } | SNAPSHOTDECLARE statement and are assigned values by using either a SET or ; }SELECT statement. Cursor variables can be declared with this statement and <procedure_option> ::= BEGIN TRANSACTION (Transact-SQL)used with other cursor-related statements. After declaration, all variables are [ ENCRYPTION ] BEGIN { TRAN | TRANSACTION }initialized as NULL, unless a value is provided as part of the declaration. [ RECOMPILE ] [ { transaction_name | @tran_name_variable } DECLARE [ EXECUTE AS Clause ] [ WITH MARK [ description ] ] { ]; {{ @local_variable [AS] data_type } | [ = value ] } --CLR Stored Procedure Syntax COMMIT TRANSACTION (Transact-SQL) | { @cursor_variable_name CURSOR } CREATE { PROC | PROCEDURE } [schema_name.] procedure_name COMMIT { TRAN | TRANSACTION } [ transaction_name | } [,...n] [ ; number ] @tran_name_variable ] ]; | { @table_variable_name [AS] <table_type_definition> [ { @parameter [ type_schema_name. ] data_type } COMMIT WORK (Transact-SQL) | <user-defined table type> [ = default ] [ OUT | OUTPUT ] [READONLY] COMMIT [ WORK ] ; } ] [ ,...n ] ROLLBACK WORK (Transact-SQL) [ WITH EXECUTE AS Clause ] ROLLBACK [ WORK ] ; <table_type_definition> ::= AS { EXTERNAL NAME assembly_name.class_name.method_name } ROLLBACK TRANSACTION (Transact-SQL) TABLE ( { <column_definition> | <table_constraint> } [ ,... ] ) ; ROLLBACK { TRAN | TRANSACTION } <column_constraint> ::= [ transaction_name | @tran_name_variable CREATE TRIGGER (Transact-SQL) | savepoint_name | @savepoint_variable ] ; { Creates a DML, DDL, or logon trigger. A trigger is a special kind of [ NULL | NOT NULL ] SAVE TRANSACTION (Transact-SQL) stored procedure that automatically executes when an event occurs in the SAVE { TRAN | TRANSACTION } { savepoint_name | | [ PRIMARY KEY | UNIQUE ] database server. DML triggers execute when a user tries to modify data | CHECK ( logical_expression ) @savepoint_variable } ; through a data manipulation language (DML) event. DML events are }
  2. 2. XML • um de vários TOKENs (ei) : (e1 | e2 | …) Regra de transformaçãoConstituido • nome de uma anotação : NOTATION • <xsl:template match="padrão">molde</xsl:template> • Elementos • valor XML predefinido : xml: • padrão: expressão Xpath • Pode conter elementos • valor-omissao • molde: Transformação a aplicar • Pode conter atributos • valor omissão do atributo : "valor" • Valores dos Nós • Não pode: • atributo obrigatório : #REQUIRED • <xsl:value-of select="padrão"/> • ter sinais de pontuação • atributo opcional : #IMPLIED Percorrer todos os nós • ter a palavra XML (seja como estiver escrita) • atributo de valor fixo : #FIXED "valor" • <xsl:for-each select="padrão"/> • ter espaços • Entidade Testar alternativas • no conteudo o caracter menor (<) • Usada para conter texto • + <xsl:if test="padrão">molde</xsl:if> • Refencia a Entidade, refere uma Entidade (&ENTIDADE) Definir relação de ordem • Evitar o uso de : • Declara-se: • <xsl:sort • sinal de subtracção (-) e ponto (.) • Interna: <!ENTITY nome-entidade "valor-entidade"> select = "expressãoXPath" • dois pontos(:) data-type = "text" | "number" | "PrefixedName" • Atributos • Externa: <!ENTITY nome-entidade SYSTEM "URI"> lang = "langcode" • Pertence sempre a um e só um elemento DTD: subconjunto interno order = "ascending" | "descending" • Não pode conter outros elementos ou atributos • Definições que estão no ficheiro xml case-order = "upper-first" | "lower-first" • Regras • Boa abordagem para construir um bom DTD /> • As Tags • Subconjunto Avaliação especifica • São case Sensitive • Interno • <xsl:apply-templates select="padrão"/> • Não aceitam espaços • está contido, entre os parêntesis rectos: Atributo modo • Andam aos pares. Tem tag de inicio e de fim • <!DOCTYPE r [ subconjunto interno ]> • Quando um nós tem que ser transportado multiplas vezes • Valor dos atributos são escritos entre plicas() ou aspas (") • Externo • No <xsl:template> o valor de mode indica o modo em que a • Adequadamente aninhados • está num ficheiro regra deve ser activada • Declaração • <!DOCTYPE r SYSTEM "ficheiro.dtd"> • No <xsl:apply-template> o valor de mode indica em que modo • Deve iniciar com uma declaração XML (é opcional) • na declaração XML tem-se: standalone="no" serão activadas as correspondentes regras • Tem que ser a primeira linha, não pode conter qualquer caracter • Ambos os subconjuntos têm que ser compativeis • Atributo mode antes • Não pode redefinir elementos e atributos Padrão do valor Atributo • Declaração tem o formato <?xml atributos> • As ENTITY podem ser redefinidas • construir um atributo com base no valor de um outro qualquer • Atributos: Entidade Parametro elemento • version (obrigatório) • Entidade Geral • escreve-se como uma expressão XPath entre chavetas • encoding(opcional) • Define Elementos ou Atributos • colocada como valor de atributo de um elemento (no documento • Declaração XSLT) • ISO-8859-1 • <!ENTITY % nome-entidade "valor-entidade"> Indicar o documento resultante • UTF8 • Diferenças entre Entidade • <xsl:output • standalone(opcional) • entidade (geral): referida com & ; method=“xml | html | text | name” • Não precisa de analisar informação externa = version=“string” encoding=“string” yes • entidade parâmetro: referida com % omit-xml-declaration="yes | no" • É analisada informação externa (DTD)= no • Só pode ser utilizada em subconjunto externo standalone=“yes | no” • Comentários: • Redefinição doctype-public=“string” • <!-- Comentário → • Analisa primeiro o subconjunto interno e depois o externo doctype-system=“string” • O operador &, designa-se por referência a entidade. • Quando uma entidade têm mais de uma definição, é indent=“yes | no” • o parser substitui o &tag, pelo texto representado por tag considerada a primeira /> • 5 referências a entidades Noção de Variavel • &lt (obrigatório no conteudo de um elemento) (<) XPATH • <xsl:variable> • &amp(obrigatório no conteudo de um elemento)(&) 7 tipos de nós • representar uma variável global ou local • &gt(>) • raiz : / • global se for declarado como elemento de topo • &quot(") • elemento : nome • local se for declarado no contexto de um elemento • &apos() • atributo : @oNome <xsl:template>Espaço de Nomes (Nome qualificado) • texto : text() • apenas permite que lhe seja atribuído valor uma única vez • Distingue elementos e atributos de diferentes vocabulários • comentario : comment() • está mais próximo de uma constante do que de uma • Agrupar elementos e atributos que se relacionam variável • instrução de processamento : processing-instruction() • Todos os elementos e atributos com o mesmo URI tem o mesmo • pagina(36) • espaço de nomes : namespace-uri(), local-name(), name() namespace Localização • URI • procurar a partir deste ponto : // expressão XSD • <schemeName>:<hierarchicalPart>[?<query>] • selecciona o nó corrente : . Formato geral de um esquema [#<fragment>] • selecciona o nó ascentente : .. • tem um elemento raiz e pode ter uma declaração XML ( <schema>) • URN = urn:namespaceID:namespaceSpecificString • selecciona todos os nós do tipo elemento: * • entre outros, tem o atributo targetNamespace • Atributo XNLS • selecciona todos os nós do tipo atributo: @* • Diz-se que um elemento é global quando • Evita-se conflitos entre nomes • selecciona todos os nós : node() • é descendente imediato do elemento schema • Usa-se para associor um previxo a um URI • selecciona os nós que verificam as diversas expressões: expr1 | expr2 • Diz-se que um elemento é local quando • formato: xmlns:prefixo="URI" | expr3 • é descendente imediato de um elemento diferente de schema • nome ficam na forma prefixo:nome Predicado Estruturas • Quando o namespace é definido num elemento, contextualiza todos • É um passo de localização sobre o qual se define uma condição • Tipo Simples os seus descendentes • A condição é escrita entre parêntesis rectos • elemento, atributo ou restrição • Processamento sobre um Namespace • Os operadores disponiveis são: =, !=, < , <=, >, >= , and , or • um elemento só pode conter texto • URI fornece nome único ao namespace • Os valores podem ser escritos entre plicas ou com aspas • <xs:element name=“xxx” type=“yyy” /> • não é utilizado pelos parsers • Os parênteses curvos explicitam as precedencias • Um atributo é sempre do tipo simples • valida se os nomes foram associados a um URI Eixo • <xs:atributeTratamento de Texto • self: o nó corrente name = “XMLname” • Dentro da secção CDATA tudo é ignorado • child: nós filho (eixo de omissão) type = “QName”> • <![CDATA[ ... ]]> • descendant: toda a descendência; nós filho, nós filho do filho, etc default = “string” • descendant-or-self: o nó corrente e toda a sua descendência fixed = “string” • parent: o nó que contém o corrente; o nó raiz não tem parent use = “(optional | prohibited | required)”DTD ref = “QName”Linguagem para especificar a gramática • ancestor: todos os antepassados; o nó raiz não tem ancestor </xs:attribute>Especifica • ancestor-or-self: o nó corrente e todos os seus antepassados • Tipo Complexo • elementos, atributos e entidades • following: nós irmãos escritos depois do nó corrente • preceding: nós irmãos escritos antes do nó corrente • elementos que contem • contexto em cada componente • outros elementos • atributos com valor unico e referencias para esses atributos • following-sibling: todos os descendentes dos nós irmãos escritosConvenção depois do nó corrente • contendo atributos • ? = zero ou uma ocorrência • preceding-sibling: todos os antepassados dos nós irmãos escritos • indicadores • * = zero ou mais ocorrências antes do nó corrente • indicador de relação de ordem (all, choice, sequence) • + = uma ou mais ocorrências • attribute: todos os atributos do nó corrente • indicador de ocorrência (maxOccurs, minOccurs)Declaração • namespace: todos os "namespace" no âmbito do nó corrente • indicador de agrupamento (group name, attributeGroup • Inclusão xmlDoc.setProperty "SelectionLanguage", "XPath" name) • Inline:<!DOCTYPE elemento-raiz [declarações-de-elementos]> • indexação começa em 1 • dar nome ao tipo complexo • externo:<!DOCTYPE elemento-raiz SYSTEM "nome- Tipos • <xs:element name=“receita” type=“tReceita”/> ficheiro"> • node-set • <xs:complexType name=“tReceita”> • Elementos • string • Restrição • <!ELEMENT nome categoria> • boolean • É sempre do tipo simples • <!ELEMENT nome (tipo-de-conteudo-do-elemento)> • number • <xs:simpleType> • Diferentes declarações Funções (Algumas) • <xs:restriction base=“xs:integer”> • Vazio: <!ELEMENT nome EMPTY> • position() • Qualquer conteudo: <!ELEMENT nome ANY> • last() XQuery • Não contem elementos , só texto: <!ELEMENT nome • count(expr) Estrutura FLWOR (pronuncia-se “flower”), cujo acrónimo significa (#PCDATA)> • string(expr) • for, let, where, order by, return • Contem elementos descendentes: <!ELEMENT nome • starts-with(s1,s2) (nome-desc-1, nome-desc-2, ...)> • contains(s1, s2) Expressões • Contem conteudo misto: <!ELEMENT nome (nome- • translate(s1, s2 , s3) elem-a | nome-elem-b | ...)> • boolean(expr) • Atributos • not(expr) • <!ATTLIST nome-elem nome-atr tipo-atr valor-omissao> • number(expr) • tipo-atr • sum(expr) • texto que não será analisado : CDATA • round(n) • e.g. nome XML válido : NMTOKEN • lista de NMTOKEN : NMTOKENS XSLT • uma entidade : ENTITY Cada Regra especifica a transformação de um molde ("template") num • lista de entidades : ENTITIES padrão ("match") • valor (deste atributo) é único : ID Elemento raiz: stylesheet ou transform • valor de outro ID : IDREF • Estão no namespace: http://www.w3.org/1999/XSL/Transform • lista de outros IDs : IDREFS

×